Php 如何从mysql数据库检索sentense中以逗号分隔的所有值?
我有下面的代码,其中有一个文本区域,将输入作为单独的值,并将其组合成一个句子。例如,如果用户输入andheri bandra dadar,然后将其存储在$data中,则显示为andheri、bandra、dadar。此外,文本区域是自动完成的,这意味着如果您输入“da”,它将自动填充dadar 我尝试了下面的函数,然后它搜索句子中的所有值,但它只搜索句子中的第一个值,即andheri。请帮帮我Php 如何从mysql数据库检索sentense中以逗号分隔的所有值?,php,mysql,Php,Mysql,我有下面的代码,其中有一个文本区域,将输入作为单独的值,并将其组合成一个句子。例如,如果用户输入andheri bandra dadar,然后将其存储在$data中,则显示为andheri、bandra、dadar。此外,文本区域是自动完成的,这意味着如果您输入“da”,它将自动填充dadar 我尝试了下面的函数,然后它搜索句子中的所有值,但它只搜索句子中的第一个值,即andheri。请帮帮我 //code $sql=mysql_query("SELECT * FROM broker_prope
//code
$sql=mysql_query("SELECT * FROM broker_property WHERE find_in_set(area,'$data')") or die(mysql_error())
这里,
area
是mysql表中的一列,$data
是包含所有用逗号分隔的子值的句子。使用mysql CONCAT\u WS或CONCAT
子句来帮助您连接字符串
正式文件:
示例
select * from broker_property where concat_ws(' ',area,$data) like 'CONDITIONS';
或者你也可以在where子句中使用相等检查。将你的每个单词用引号括起来,然后使用
SELECT * FROM broker_property WHERE area IN ($data)
范例
SELECT * FROM broker_property WHERE area IN ("First","Second","Third")
在
$sql=mysql_query("SELECT * FROM broker_property WHERE area IN ('$data')");
是的,这是正确的,但我不知道用户将在文本区域输入多少值??我必须检索用户将输入的值。它是动态的。这应该适用于任意数量的值。如果您像下面这样生成字符串,那么“word1”、“word2”、“word3”等等,但我有400多个值。所以我可以把所有的400个值都放对??是的,你可以放对。只是,中的
不是一种很快的搜索方式,但我想在这种情况下不会有太多的选择。是的,我还必须在IN子句中输入400个值,这不是很好的编程。我得到了解决方案…我将find_IN_set(区域,$data'))替换为find_IN_set(区域,“$data”。”)它工作正常…谢谢兄弟的回复他们有了解决方案…我用find_in_set(area,“$data”))替换find_in_set(area,“$data”。”)它工作正常…谢谢兄弟的回复他们有了解决方案…我用find_in_set(area,“$data”))替换find_in_in_set(area,“$data”。”)它工作正常…谢谢兄弟的回复