【发布时间】:2016-06-11 14:23:41
【问题描述】:
我有一个 mysql 查询,它只是查看 mysql 以查找 LIKE 字符串并显示结果。
在同一个 mysql 查询中,我有 2 个LIKE。
1 始终是单个字符串,另一个可以是单个字符串,有时也可以是多个字符串,以逗号分隔。
当我使用我的代码时,即使我在 mysql 数据库中拥有所有字段并且我在列中也拥有所有搜索字符串,但我根本没有得到任何结果。
这是我的代码:
$area = 'London';
$res = 'santandar, HSBC, RBS, ';
$sql = "SELECT * FROM banks WHERE location LIKE '%$area%' AND name LIKE '%$res'";
我也用 preg_match 尝试过,它没有返回任何东西:
$sql = "SELECT * FROM banks WHERE location LIKE '%$area%' AND name LIKE '".preg_match($res)."'";
如果我删除第二个 LIKE 并且我的代码如下所示,它就可以正常工作:
sql = "SELECT * FROM banks WHERE location LIKE '%$area%'";
所以当我尝试使用逗号分隔的字符串进行搜索时,问题就开始了。
有人可以就这个问题提出建议吗?
编辑:
PHP 变量是 POSTS,因此它们可以是每个帖子中的任何内容。
他们是这样的:
$area = $_POST['area'];
$res = $_POST['res'];
【问题讨论】:
-
看起来你想要一个 LIKE IN / CONTAINS 语句,例如名称 LIKE IN ('%sandar%', '%HSBC%', '%RBS%')。在 mysql AFAIK 中不可能。
-
向我们展示一些包含您认为应该匹配的数据的示例记录。
-
您是在创建 $res 代码级别。如果是这样,您可以尝试
in之类的.. name in (".$res.")"; -
@Iftikhar,php 变量 $res 和 $area 都是 PHP POST。我只是用这些字符串向你们展示了它们发布后的样子。