繁体   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