Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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 在\u集合()中查找\u未找到所有值_Php_Mysql_Sql_Hashtag - Fatal编程技术网

Php 在\u集合()中查找\u未找到所有值

Php 在\u集合()中查找\u未找到所有值,php,mysql,sql,hashtag,Php,Mysql,Sql,Hashtag,我的数据库中有以下记录: hashtag - description - tags - location - time - day #social - description - social media, facebook, social networking sites, social media, smartphone - usa - Tuesday #php - description - programming language, coding, open sou

我的数据库中有以下记录:

hashtag -   description -   tags -  location -  time -  day

#social -  description - social media, facebook, social networking sites, social media, smartphone - usa - Tuesday

#php -  description - programming language, coding, open source - usa - Tuesday

#iphone -  description - smartphone, apple, iphone apps, costly phone, touch screen - usa - Tuesday
这里的标记是逗号分隔的值

现在,如果用户搜索
编程
,结果将是
第二行

"coding"  - 2nd row
"smartphone" - 3rd & 1st row.
"iphone" - 3rd row
因此,这就像搜索标签或直接搜索hash关键字一样。第一列是
hashkeyword
。标记以逗号分隔存储在数据库中

我正在为此使用
find\u in_set()
,但它似乎工作不正常

SELECT * FROM `hash`WHERE `hashtag` LIKE 'smartphone' OR find_in_set('smartphone', tags)
它只返回第一排,即

iphone -    iphone description - smartphone, apple, apps, touchscreen - India   - tuesday
但“smartphone”值也在第三行,所以它应该返回第一行和第三行

我错在哪里?或者有没有其他类似的搜索方法,而不是
find_in_set()

的正确语法是:

编辑:

您可以使用LIKE进行文本搜索:

SELECT *
FROM `tablename`
WHERE tags LIKE '%TAG%'
的正确语法是:

编辑:

您可以使用LIKE进行文本搜索:

SELECT *
FROM `tablename`
WHERE tags LIKE '%TAG%'

如果逗号后有空格,则
FIND\u IN\u SET
将无法正常工作

它将在
智能手机、苹果、应用程序、触摸屏
中找到,但在
苹果、智能手机、应用程序、触摸屏
中找不到


如果逗号后面有空格,请尝试使用。

,然后
在集合中查找将无法正常工作

它将在
智能手机、苹果、应用程序、触摸屏
中找到,但在
苹果、智能手机、应用程序、触摸屏
中找不到


对于另一种解决方案,请尝试。

我尝试了以下方法:
SELECT*FROM hash WHERE FIND_IN_SET(“标记”、“智能手机”)FIND_IN_SET('smartphone',REPLACE(tags',',',','))
@J.K.A.从FIND_IN_SET(“smartphone”,tags)的散列中选择*;这会奏效的。对于列名,不需要“我尝试了这个:
SELECT*FROM hash WHERE FIND_IN_SET(“tags”,“smartphone”);
,但它不返回任何内容是的,它不像(像“%string%”)这个问题的答案是错误的。这个例子中的FiffyIn集合用法是正确的。在逗号之前和/或逗号之后的空格导致问题。你可以像这样删除你的DB或查询中的空格(虽然不推荐):<代码> FiffyIn集(“智能电话”,替换(标签,‘,’,’,’))。
@J.K.A.从“智能手机”中的“查找”集合(“智能手机”,标签)中的散列中选择*;这将起作用。对于列名,不需要“