MySQL
表:城市
+----+----------+
| id | city |
+----+----------+
| 1 | New York |
+----+----------+
表:车站
+----+--------------+---------+
| id | name | city_id |
+----+--------------+---------+
| 1 | Woodlawn | 1 |
+----+--------------+---------+
| 2 | Mosholu Pkwy | 1 |
+----+--------------+---------+
PHP
$string = mysql_real_escape_string('woodlawn new york');
$a = mysql_query("
SELECT s.id FROM cities AS c, stations AS s
WHERE CONCAT_WS(' ', s.name, c.city) LIKE '%$string%' AND c.id = s.city_id
");
while($b = mysql_fetch_assoc($a))
{
echo $b['id'];
}
问题
但是,当我尝试搜索时,上面的示例工作正常:
$string = mysql_real_escape_string('mosholu new york');
我得到 0 个结果,除非我明确搜索mosholu pkwy new york。
可能的选择?
显然我不能将FULLTEXT
搜索与CONCAT_WS
. 而且我真的很想保持表格的结构不变,一张桌子cities
用于stations
.
那么,唯一的选择是将第四列添加到stations
包含车站名称和城市名称的表中,然后对其进行FULLTEXT
搜索吗?
但这只会让人头疼,例如,如果我必须更新城市名称,然后还要为stations
表中的所有行更改它。