1
test3207 2021-01-09 17:41:44 +08:00 via Android 1
不要在数据库里搞搜索好些……虽然有些数据库有类似分词插件的邪道玩法,但是搞搜索 es 才是正统啊
|
2
dfzj 2021-01-09 17:43:25 +08:00 1
如果不考虑执行效率,只考虑开发效率,可以这样干:构造一张新表,把字段拼接起来,
然后用新造字段去匹配条件: SELECT * FROM (SELECT concat(column_1, column_2, column_3, t_tag) as ccc, ... FROM t_user left join t_tag) as A WHERE ccc like keyword_A and ccc like keyword_B and ccc like keyword_C AND ccc not like keyword_D 显然上述方法没办法走索引。 另外现在直接写 SQL 就可以快速开发系统了: wuyuan.io |
3
w504391883 2021-01-09 17:43:35 +08:00 1
一楼说的对呀,怎么写都感觉邪门歪道,如果条件所限,只能笨办法来了
|
4
yodhcn OP @dfzj #2 确实我也很疑惑,"ccc like %keywork_A%" 用不到索引,用 SQL 搜索关键字是不是只能逐行比对?
在我的使用场景中,数据库中至多有 1 万 行数据,请问这种情况下,用 SQL 搜索关键字是否可行? |
5
sunsijia 2021-01-09 19:17:35 +08:00
一楼说的对,搞个搜索吧
|