0

在我的表中,我有一个字段user_ids。user_ids 字段包含12、45、78、95、21、78、98 等值

我需要的是我需要一个mysql查询来搜索字段中的特定 ID(例如:45)。

我使用了like运算符,但它没有按我预期的那样工作。例如:当我搜索5时,它返回 tru,但id 5不在列表中。

我想知道mysql中是否有任何默认功能可用。

你能帮我吗...

我的查询。

SELECT * FROM `FRIENDSLIST` WHERE `USERS_ID` LIKE '%'.$ID.'%';

注意:我不知道这个问题是否符合标准,请不要投反对票。请帮助我....

4

3 回答 3

3

这也有效:

select * from FRIENDSLIST where find_in_set( $ID, USERS_ID ) <> 0
于 2013-08-28T09:23:27.163 回答
1

尝试

Where ',' + MyField + ',' Like '%,' + MySearchString + ',%'

问题是您将其视为 ID,但它只是一个字符串。因此,当您在 '12,45,78,95,21,78,98' 中搜索 '5' 时,它会在 45 个中的 5 个中找到它。如果用逗号括起来,则它会在 ' 中搜索 ',45,' ,12,45,78,95,21,78,98,' 并找到它,但是您是否正在寻找 ',5',它不会根据需要匹配。

您还需要在开头和结尾添加逗号才能计算出第一个和最后一个 ID。

于 2013-08-28T09:20:25.997 回答
0

根据您的数据,更简单的方法是使用逗号搜索,例如“,45,”。

但更好的方法是根据逗号拆分它们并与之匹配。

于 2013-08-28T09:22:34.157 回答