SELECT * FROM `x_shop` WHERE `id` IN(SELECT `sid` FROM `x_search` WHERE `id`=6)SELECT `sid` FROM `x_search` WHERE `id`=6 的结果是 1,2如何让第一句SQL实现 SELECT * FROM `x_shop` WHERE `id` IN(1,2) 的效果?应用场景:为商家设置多个关键字(搜索),以下两种方案那种好一点?
1.建立一个表字段: id、key、sid 其中sid是记录商家ID
2.shop表中添加key字段,并设置全文索引
两个问题,求助
1.建立一个表字段: id、key、sid 其中sid是记录商家ID
2.shop表中添加key字段,并设置全文索引
两个问题,求助
我的意思是SELECT `sid` FROM `x_search` WHERE `id`=6 的结果是 (1,2) 不是1或者2
SELECT * FROM `x_shop` WHERE `id` IN(1,2) 可以查询两条SELECT * FROM `x_shop` WHERE `id` IN(SELECT `sid` FROM `x_search` WHERE `id`=6) 就不行,只能查到一条
只说返回的是有一条记录且 sid 的值是“1,2”,是吗?
如果是则可写作
SELECT * FROM `x_shop` WHERE find_in_set(`id`,(SELECT `sid` FROM `x_search` WHERE `id`=6))