[英]MySQL Limiting a query to one consistent value
我當前的查詢返回一個表,如:
+------------+
value1 | ....
value1 | ....
value2 | ....
value3 | ....
+------------+
我想要:
+------------+
value1 | ....
value1 | ....
+------------+
我只想接收具有第一個值的所有行。 通常,如果知道該值,我將執行WHERE子句,並且由於每個值具有不同的行數,因此無法使用LIMIT。
現在我的查詢看起來像:
SELECT u.*, n.something, w.*
FROM ... AS u, ... AS n, ... AS w
WHERE u.id = n.id
AND w.val = n.val
AND u.desc LIKE '%GET REQUEST VARIABLE%'
這很好用,除非我得到太多的行,並且使用PHP來做這破壞了代碼的可移植性並且是多余的。
不確定,但我認為您可以通過以下方式獲得它:
SELECT u.*, n.something, w.*
FROM ... AS u
JOIN ... AS n ON u.id = n.id
JOIN ... AS w ON w.val = n.val
JOIN (
SELECT col
FROM ... AS u2
WHERE u2.desc LIKE ?
LIMIT 1
) AS u2 ON u2.col = u.col
其中...
在內部SELECT
是化名為同桌u
之前。
編輯:還有一件事:我認為col
對於不同的desc
值是不同的; 如果不是,則還必須在外部SELECT
重復WHERE
。
(如果您不熟悉准備好的語句, ?
就是您的'%...%'
所在的位置...,並且別忘了在Bobby Tables中對它進行轉義;當然,如果您願意,該庫將它給你:))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.