Php 使用文本在查询中选择MYSQL
如能迅速提供帮助,我们将不胜感激。我在mysql中将表行命名为mob_categories,现在数据被保存为“|”分隔,例如(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
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