Mysql WHERE列在字符串中

时间:2016-01-30 09:47:31

标签: php mysql

我希望,这不是一个非常愚蠢的问题,但是几个小时后,我一直在寻找解决方案,但没有成功。

我有一张名为城市的表格:

cities.name

柏林
纽约
汉堡
...

我有一个字符串: "波恩纽约芝加哥"

现在,我想选择所有"已知"这个字符串的城市。但正如您所看到的,我无法将此字符串拆分为数组(因为"纽约")。所以" FIND_IN_SET"不适合我。功能" LIKE"正在"错误的方向工作"。

所以我需要像%cities.name%EKIL $ string:-D

这样的东西

有没有人有想法,如何在不使用PHP的情况下处理这个问题?

我希望,我不会错过森林的树木......

非常感谢你的帮助!

托拜厄斯

1 个答案:

答案 0 :(得分:1)

您需要创建一个cities数组,然后针对您的城市数组检查字符串。

$to_match = array('Bonn','New York','Chicago'); // all cities array

$str = "Bonn New York Chicago"; // Your city string
$new_array = array();

foreach($to_match as $value) {
  if(stristr($str, $value)) {
    $new_array[] = $value;
  }
}

print_r($new_array); // here you can get only match cities against all cities array

这将迭代每个array元素,然后检查match中是否存在$str的值,然后将其添加到$new_array