簡體   English   中英

SQL錯誤:#1242-子查詢返回多於1行

[英]SQL error: #1242 - Subquery returns more than 1 row

我收到“錯誤:#1242-子查詢返回多於1行”,試圖執行此查詢:

SELECT id FROM postcodes WHERE pcd LIKE (SELECT CONCAT(pcd,' %') FROM towns WHERE id IN (31898,12828,15771,7604))

您對此查詢有什么建議嗎?

JOIN兩個表而不是IN謂詞,如下所示:

SELECT p.id 
FROM postcodes p
INNER JOIN towns t ON p.pcd LIKE CONCAT(t.pcd,' %')
WHERE t.id IN (31898,12828,15771,7604);

檢查此查詢:

SELECT CONCAT(pcd,' %') FROM towns WHERE id IN (31898,12828,15771,7604)

也許結果是不止一排。

或者,您可以限制子查詢結果。

SELECT id FROM postcodes WHERE pcd LIKE (SELECT CONCAT(pcd,' %') FROM towns WHERE id IN (31898,12828,15771,7604) LIMIT 1)

您必須將子查詢限制為一行。 您應該添加一些過濾器以將結果限制為一行,或者在子查詢中添加LIMIT 1將為您解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM