从所有领域搜索

时间:2018-02-06 06:10:58

标签: php mysql regex select

我有一个用逗号分隔的字符串,如(delhi,110005,Hospital),我想这样搜索:

$string="delhi,110005,Hospital";

SELECT * FROM `hospitals` WHERE CONCAT(",", `sub_city_name`, ",") REGEXP ",($string),"

它仅适用于一个字段,但是当我传递多个字段时,它不起作用。

3 个答案:

答案 0 :(得分:0)

我假设您的搜索字符串包含序列中字段的值。例如,如果要搜索所有字段i-e

<强> (city_name,sub_city_name,hospital_name,pincode)

您的搜索字符串应包含该序列中的值以及i-e

$string="Delhi,Sub City,Hospital,110005";
$string2="Sub City,Hospital,110005";
$string3="Hospital,110005";
$string4="Delhi,Sub City";

如果我的假设是正确的,则以下查询可能适合您。

SELECT *
FROM `hospitals`
WHERE  CONCAT(`city_name`,',',`sub_city_name`,',',`hospital_name`,',',`pincode`)
LIKE '%{string_goes_here}%';

SQL Fiddle Here

答案 1 :(得分:0)

如果各个字段中没有逗号,请使用FIND_IN_SET()来测试某个项目是否在商家中。

答案 2 :(得分:-1)

您可能希望使用以下内容:

SELECT * FROM `hospitals` WHERE field LIKE '%delhi,110005,Hospital%';