0

你好,我有一个列名为 id、receiver_id 的表,现在我想获取其中 sender_id 是 current_logged 的​​记录,receiver_id 包含 id 中的当前 loggend。

表示receiver_id 包含用 分隔的user_id 的字符串,现在我想检查receiver_id 中是否存在user_id

假设我的 id 是U112并且 receiver_idU112,U123,U157现在包含字符串我该如何检查

我尝试如下但失败了

$selDoc="SELECT * FROM documents WHERE sender_id='U112' OR 'U112' IN (receiver_id) ORDER BY id DESC";

4

4 回答 4

3

str IN (str2)是一样的str == str2

使用FIND_IN_SET

FIND_IN_SET('U112', receiver_id)

注意:您可能应该规范化您的架构。这将是一个全表扫描。

于 2013-04-23T10:47:09.137 回答
0

这可能正常工作:

SELECT * FROM documents WHERE sender_id in ('U112','U113','U113')

或者

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')
于 2013-04-23T11:08:46.990 回答
0

或者你可以使用

receiver_id LIKE "% U112 %"
于 2013-04-23T10:54:01.340 回答
0

你可以这样尝试:

SELECT  * FROM documents WHERE (receiver_id LIKE '%,U112' OR receiver_id LIKE 'U112,%' OR receiver_id LIKE '%,U112,%' OR receiver_id LIKE 'U112')
于 2013-04-23T11:14:36.027 回答