簡體   English   中英

MySQL將查詢限制為一個一致的值

[英]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.

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