sql - 为什么这个查询只选择一行?

标签 sql mysql

SELECT * FROM tbl_houses 
WHERE 
 (SELECT HousesList 
  FROM tbl_lists 
  WHERE tbl_lists.ID = '123') LIKE CONCAT('% ', tbl_houses.ID, '#')

它只从 tbl_houses 中选择 tbl_lists.HousesList 中最后出现的 tbl_houses.ID 的行

我需要它来选择 tbl_lists.HousesList 中存在来自 tbl_houses 的任何 ID 的所有行

最佳答案

如果不知道你的数据究竟是什么样子,很难说,但如果它只匹配最后一个ID,那可能是因为你在字符串末尾没有任何%,所以以允许列表在比赛结束后继续。

关于sql - 为什么这个查询只选择一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2491970/

相关文章:

sql - 如何为 PostgreSQL 编写我自己的全局锁定/解锁函数

简单查询的 MySQL 性能问题

c# - 在 Catch block 中重试?

sql - 调查的数据库设计

php - 使用空白字段条目更新,MySql 将其显示为零

mysql - 如何在此处传递 BuildStringArray 作为响应

php - MySql 查询到 Postgres 查询。 Postgres 不支持 IF 条件

mysql - MySQL设置密码错误

php - Prepared Statements 没有速度优势?

mysql - 将姓氏与中缀拼接