Php Mysql,其中列为字符串

Php Mysql,其中列为字符串,php,mysql,Php,Mysql,我希望,这不是一个非常愚蠢的问题,但由于一些小时,我正在寻找一个解决方案,但没有成功 我有一张表格,上面有城市名称: 城市名称 柏林 纽约 汉堡 我有一个字符串: “波恩-纽约-芝加哥” 现在,我想从这个字符串中选择所有“已知”城市。但正如您所见,我无法将此字符串拆分为数组(因为“纽约”)。所以“在集合中查找”不适合我。函数“LIKE”的工作方向是“错误的” 所以我需要%cities.name%EKIL$string:-D之类的东西 有人知道我如何不用PHP处理这个问题吗 我希望,我不会因为树

我希望,这不是一个非常愚蠢的问题,但由于一些小时,我正在寻找一个解决方案,但没有成功

我有一张表格,上面有城市名称:

城市名称 柏林
纽约
汉堡

我有一个字符串: “波恩-纽约-芝加哥”

现在,我想从这个字符串中选择所有“已知”城市。但正如您所见,我无法将此字符串拆分为数组(因为“纽约”)。所以“在集合中查找”不适合我。函数“LIKE”的工作方向是“错误的”

所以我需要%cities.name%EKIL$string:-D之类的东西

有人知道我如何不用PHP处理这个问题吗

我希望,我不会因为树木而错过森林

非常感谢你的帮助


Tobias

您需要创建一个
cities
数组,然后对照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

这将迭代每个
数组
元素,然后检查
匹配
的值是否存在于
$str
中,然后将其添加到
$new_数组

这与PHP问题一样是MySQL问题。使用
WHERE name IN('Berlin'、'New York'、'Hamburg')
@TimBiegeleisen我想作者还不知道haystack字符串包含'Berlin'、'New York'而不是'Berlin New'、'York Hamburg'等等。阅读整个问题很有帮助。@NoChecksum:是的,你说得对。我收到一个任意字符串,我将删除除字母和空格以外的所有内容。所以一切都可能:)非常感谢!看来,没有机会用纯SQL来处理它。。。所以,我接受你的建议。再次感谢你的帮助!