MySQL 子查询的奇怪行为

发布于 2024-12-17 11:51:09 字数 316 浏览 0 评论 0原文

我正在进行搜索查询,但结果应该从三个表中获取,并且它只适用于两个字符,之后返回空行,所以任何人都可以帮忙吗 这是我的查询

SELECT * 
FROM tables
WHERE table2_id
IN (

SELECT id
FROM table2
WHERE table3_id
IN (

SELECT id
FROM table3
WHERE name LIKE  '%in%'
)
OR
)
name LIKE 'in%' 
AND id <>  '8'

如果我做了正确的事情以及当它超过两个字符时出了什么问题,有什么建议吗

I was making a query for search but the result should be obtained from three tables and it works fine for only two characters after that it returns empty rows so can anyone help please
here is my query

SELECT * 
FROM tables
WHERE table2_id
IN (

SELECT id
FROM table2
WHERE table3_id
IN (

SELECT id
FROM table3
WHERE name LIKE  '%in%'
)
OR
)
name LIKE 'in%' 
AND id <>  '8'

Any suggestions if I am making the right things and what went wrong when its more than two characters

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一片旧的回忆 2024-12-24 11:51:09

这是一个完全荒谬的问题!使用联接 - 这就是它的用途!

SELECT tables.*
FROM tables JOIN table2 ON tables.table2_id = table2.id
     JOIN table3 ON table2.table3_id = table3.id
WHERE (name LIKE  '%in%' OR name LIKE 'in%' AND id <> 8

That's a completely ridiculous query! Use a join - that's what it's for!

SELECT tables.*
FROM tables JOIN table2 ON tables.table2_id = table2.id
     JOIN table3 ON table2.table3_id = table3.id
WHERE (name LIKE  '%in%' OR name LIKE 'in%' AND id <> 8
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文