• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于mysql的子查询

php 搞代码 4年前 (2022-01-23) 25次浏览 已收录 0个评论
文章目录[隐藏]

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字段,并设置全文索引

两个问题,求助

回复讨论(解决方案)

SELECT a.* FROM `x_shop` AS a, `x_search` AS b WHERE a.id = b.sid AND b.id=6

没其他需求就用2把, 原来SQL语句还能这样用 酷

SELECT a.* FROM `x_shop` AS a, `x_search` AS b WHERE a.id = b.sid AND b.id=6

我的意思是SELECT `sid` FROM `x_search` WHERE `id`=6 的结果是 (1,2) 不是1或者2

没其他需求就用2把, 原来SQL语句还能这样用 酷

全文索引性能是否很差

你主帖中的sql不行?

你主帖中的sql不行?

可是执行,但是假如结果为(1,2) 只查询1 其实也就是等于不行

in(1,2) 可以查询1和2 出来吧

in(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) 就不行,只能查到一条

你的“SELECT `sid` FROM `x_search` WHERE `id`=6 的结果是 1,2”
只说返回的是有一条记录且 sid 的值是“1,2”,是吗?
如果是则可写作
SELECT * FROM `x_shop` WHERE find_in_set(`id`,(SELECT `sid` FROM `x_search` WHERE `id`=6))

你的“SELECT `sid` FROM `x_search` WHERE `id`=6 的结果是 1,2”
只说返回的是有一条记录且 sid 的值是“1,2”,是吗?
如果是则可写作
SELECT * FROM `x_shop` WHERE find_in_set(`id`,(SELECT `s

本文来*源gaodai^.ma#com搞#代!码网
搞gaodaima代码

id` FROM `x_search` WHERE `id`=6))

版主V587


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于mysql的子查询

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址