SELECT * FROM users WHERE uid IN (SELECT doctors FROM MainPage WHERE Valid=1)
用户表
uid datatype=INT
,主页表医生datatype=text
的值为1,2,3,4,5当我运行上面的查询时,只会得到1行,用于
uid=1
。是否有其他运算符或查询更改可以从users表检索所有5行? 最佳答案
FIND_IN_SET()
函数在逗号分隔的列表中搜索值。将其与JOIN
结合使用,您将获得所需的内容:
SELECT *
FROM users
JOIN MainPage ON FIND_IN_SET(uid, doctors)
WHERE Valid = 1;
仅供参考,这是设计表格的错误方法。每个连接都应在单独的行上定义。如果是多对多关系,则需要带有复合键的单独表。
关于mysql - 一个字符串上的MySql IN运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41368550/