Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用mysql/php进行严格搜索_Php_Mysql_Regex_Mysqli - Fatal编程技术网

使用mysql/php进行严格搜索

使用mysql/php进行严格搜索,php,mysql,regex,mysqli,Php,Mysql,Regex,Mysqli,我在这件事上被困了好几个小时,如果有人能帮助我,我将不胜感激 我正在对数据进行mysql搜索: 行Id列表数据 1 3,2,7,11 2 1,27 3 2,17,44 4 19,77 我的问题是我想做一个严格的搜索 假设我想搜索上面数据中有“7”的行 如果我这样做: 从列出数据(如“%7%”)的表中选择id 显然将返回所有4行 我只想得到第一排作为我的结果 我

我在这件事上被困了好几个小时,如果有人能帮助我,我将不胜感激

我正在对数据进行mysql搜索:

行Id列表数据 1 3,2,7,11 2 1,27 3 2,17,44 4 19,77

我的问题是我想做一个严格的搜索

假设我想搜索上面数据中有“7”的行

如果我这样做:

从列出数据(如“%7%”)的表中选择id

显然将返回所有4行

我只想得到第一排作为我的结果

我怎样才能做到这一点

提前感谢:

使用

顺便说一句,您应该规范化您的数据,以避免将来出现此类问题。请在一列中始终只存储一个值,而不是多个值。

您可以使用“在集合中查找”函数,因为另一个答案或正则表达式中有一个示例:

SELECT id FROM `table` WHERE list_data REGEXP '(^|,)7($|,)'
然而,您似乎试图将多个数据链接放到一个字段中。如果是这样,那么就避免这样做——因为这违反了关系数据库原则。改为使用链接表,然后将使用运算符重写查询。

您的表格式错误。一定是这样

id Data
1  3
1  2
1  7
1  11
2  1
2  27
3  2
3  17
3  44
4  19
4  77 
和查询

select id from table where data = 7 

没有Ben限制将不起作用,因为该数据可能位于任何一行,而不仅仅是第一行。这只是一个示例数据+忘记了在集合中查找集合。很好。是的,我知道,但这就是它的设计。设计缺陷我知道:哦,你还不知道。当您获得数据和/或流量时,您就会知道这一点。
select id from table where data = 7