gpt4 book ai didi

php - MySQL 将查询限制为一个一致的值

转载 作者:行者123 更新时间:2023-11-29 06:21:43 25 4
gpt4 key购买 nike

我当前的查询返回一个如下表:

+------------+
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 进行转义;如果你是,当然,图书馆会为你做这件事:) )

关于php - MySQL 将查询限制为一个一致的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3041642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com