比较数据库字段中的字符串

时间:2013-04-23 10:35:38

标签: php mysql

你好我的表有列名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";

4 个答案:

答案 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')