[英]SELECT * FROM table WHERE * LIKE (SELECT * FROM table WHERE * = *)
我有一個單獨的城市表,其中有城市代碼,我還有一個主表,其中包含一個“地址”列,它只是一個短地址。 我想要的是 select 代碼類似於“地址”列中數據的城市。
$cityCode=$db->query("SELECT city AS bot FROM city_table WHERE city LIKE (SELECT address FROM people WHERE people_id = $zz)");
$cityCode=$cityCode->num_rows > 0 ? $cityCode->fetch_array()['bot'] : "NOT LIKE";
city_table:
| province | city |
| ----------------------- | ------------------------ |
| ILOCOS NORTE/012800000 | CITY OF BATAC/012805000 |
people:
| people_id | address |
| ----------------------- | ------------------------ |
| 1 | P-2, Brgy. 20, Batac City|
If the address contains "Batac", I want to echo it as 'CITY OF BATAC/012805000'
如何使這項工作?
您需要在城市周圍添加%
通配符,並將其用作LIKE
模式以與address
匹配。
$cityCode=$db->query("
SELECT c.city AS bot
FROM city_table AS c
JOIN people AS p ON p.address LIKE CONCAT('%', c.city, '%')
WHERE p.people_id = $zz");
像這樣在 where 子句中使用Exists
:
SELECT city AS bot FROM city_table c
WHERE EXISTS (SELECT 1 FROM people WHERE people_id = $zz AND address LIKE '%'+c.city+'%' )
$cityCode=$db->query("SELECT city AS bot,
FROM city_table WHERE city LIKE %(SELECT address FROM people WHERE
people_id = $zz)%
我已經更新了解決方案。 希望它有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.