字符串上的MySql IN运算符

时间:2016-12-28 19:32:57

标签: mysql

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。是否有任何其他运算符或查询更改可以从用户表中检索所有5行?

1 个答案:

答案 0 :(得分:3)

FIND_IN_SET()函数在逗号分隔列表中搜索值。将其与JOIN相结合,你应该得到你想要的东西:

SELECT *
  FROM users
  JOIN MainPage ON FIND_IN_SET(uid, doctors)
 WHERE Valid = 1;

仅供参考,这是设计表格的错误方法。应在单独的行上定义每个连接。如果它是多对多关系,则需要一个带有复合密钥的单独表。