SELECT * FROM users WHERE uid IN (SELECT doctors FROM MainPage WHERE Valid=1)
用户表uid datatype=INT
,网主页表医生datatype=text
与值1,2,3,4,5在MySQL操作上的绳子
当我运行上面的查询,它只是造成1行这是为uid=1
。是否有任何其他操作符或查询更改可以从用户表中检索到所有5行?
SELECT * FROM users WHERE uid IN (SELECT doctors FROM MainPage WHERE Valid=1)
用户表uid datatype=INT
,网主页表医生datatype=text
与值1,2,3,4,5在MySQL操作上的绳子
当我运行上面的查询,它只是造成1行这是为uid=1
。是否有任何其他操作符或查询更改可以从用户表中检索到所有5行?
FIND_IN_SET()
函数在以逗号分隔的列表中搜索值。再加上一个JOIN
,你应该得到你想要的东西:
SELECT *
FROM users
JOIN MainPage ON FIND_IN_SET(uid, doctors)
WHERE Valid = 1;
仅供参考,这是设计你的表走错了路。每个连接都应该在单独的行上定义。如果它是一个多对多的关系,那将需要一个带有复合键的单独表格。
用户表是否有用于id 1,2,3,4,5的行? – GurV
子查询的输出是什么? – Jordon