php查询mysql逗号_PHP:在mysql中搜索逗号分隔的字符串?

您需要使用OR将其分解为单独的LIKEs,例如:

...WHERE location LIKE '%{$area}' AND (name LIKE '%{$name1}%' OR name LIKE '%{$name2}' OR ...)您可以使用一些PHP逻辑简单地编写这个:

function build_like_or( $values, $field_name ) {

// Create an array from the comma-separated values

$names = explode( ',', $values );

// Trim all the elements to remove whitespaces

$names = array_map( 'trim', $names );

// Remove empty elements

$names = array_filter( $names );

$where = array();

// Loop over each, placing the "LIKE" clause into an array

foreach( (array)$names AS $name ) {

$where[] = "{$field_name} LIKE '%{$name}%'";

}

// Glue up the LIKE clauses.

$where = '(' . implode(' OR ', $where) . ')';

// Results will be something like:

// $where = "(name LIKE '%santadar%' OR name LIKE '%HSBC%')"

return $where;

}用法:

$area = 'London';

$res = 'santandar, HSBC, RBS, ';

$name_where = build_like_or( $res, 'name');

$sql = "SELECT * FROM banks WHERE location LIKE '%$area%' AND {$name_where}";

// echo $sql outputs "SELECT * FROM banks WHERE location LIKE 'London' AND (name LIKE '%santadar%' OR name LIKE '%HSBC%' OR name LIKE '%RBS%')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值