你好我的表有列名id,receiver_id以及更多我现在想要获取记录,其中sender_id是current_logged在user中,receiver_id包含id中的当前loggend。
表示receiver_id包含用于分隔的user_id字符串,现在我要检查user_id是否存在于receiver_id中
假设我的ID是U112
而receiver_id包含字符串U112,U123,U157
现在我该怎么检查
我尝试如下但未通过
$selDoc="SELECT * FROM documents WHERE sender_id='U112' OR 'U112' IN (receiver_id) ORDER BY id DESC";
答案 0 :(得分:3)
str IN (str2)
与str == str2
相同。
使用FIND_IN_SET:
FIND_IN_SET('U112', receiver_id)
注意:您应该规范化您的架构..这将是一个全表扫描。
答案 1 :(得分:0)
或者您可以使用
receiver_id LIKE "% U112 %"
答案 2 :(得分:0)
这可能会正常工作:
SELECT * FROM documents WHERE sender_id in ('U112','U113','U113')
OR
SELECT * FROM documents WHERE sender_id ='U112' and sender_id in ('U112','U113','U113')
注意:我在自己的桌子上工作,效果很好。 例如:
select * from tbl_answers where ques_id in ('69','12','14')
select * from tbl_answers where ques_id = 69 and ques_id in ('69','12','14')
答案 3 :(得分:0)
您可以尝试这样:
SELECT * FROM documents WHERE (receiver_id LIKE '%,U112' OR receiver_id LIKE 'U112,%' OR receiver_id LIKE '%,U112,%' OR receiver_id LIKE 'U112')