Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Php 使用文本在查询中选择MYSQL_Php_Mysql - Fatal编程技术网

Php 使用文本在查询中选择MYSQL

Php 使用文本在查询中选择MYSQL,php,mysql,Php,Mysql,如能迅速提供帮助,我们将不胜感激。我在mysql中将表行命名为mob_categories,现在数据被保存为“|”分隔,例如(cat 1 | cat 2 | cat 3等等。现在,如果输入值匹配,我需要从同一表中的另一列获取值 例如,如果值为cat 1,我需要从另一列中选择与“cat 1”匹配的名为deveice_token的值 我试过这个代码,但不知怎么的它不起作用 SELECT * from table_name where find_in_set('cat 1',mob_categorie

如能迅速提供帮助,我们将不胜感激。我在mysql中将表行命名为mob_categories,现在数据被保存为“|”分隔,例如(
cat 1 | cat 2 | cat 3
等等。现在,如果输入值匹配,我需要从同一表中的另一列获取值

例如,如果值为cat 1,我需要从另一列中选择与“cat 1”匹配的名为
deveice_token
的值

我试过这个代码,但不知怎么的它不起作用

SELECT * from table_name where find_in_set('cat 1',mob_categories) <> 0

我特别缺少什么?

因为
移动类别中的数据是由
而不是逗号(
)分隔的,所以首先需要使其与
在集合中查找兼容

SELECT * from table_name where find_in_set('cat 1', REPLACE(mob_categories,'|',',')) > 0
因此,首先用逗号(
)替换所有的
|


你应该规范化你的模式,这样你就不会在一列中有多个值。真的吗?没有更好的办法了?如果问题仍然存在,那么我没有比这更好的办法在
MySQL
end中解决它。如果你有更好的办法,请分享。我很期待。@strawberry有时,我们需要重新讨论请解释问题的前提,并重新定义问题。很好,谢谢您的及时回复
SELECT * from table_name where find_in_set('cat 1', REPLACE(mob_categories,'|',',')) > 0