gpt4 book ai didi

MySQL SELECT "LIKE"参数无法正常工作

转载 作者:行者123 更新时间:2023-11-29 00:24:22 24 4
gpt4 key购买 nike

我在我的“search.php”中为一个数据库构建一个搜索功能,我在其中存储有关 ip 地址和各种单位的信息。每个单位在数据库中都有一个“类别”列。我的搜索选择是在文本字段中搜索,和/或在下拉列表中选择类别。当我在下拉列表中选择一个类别并且未在文本字段中键入任何内容时,我得到了正确的结果(返回包含所选类别的所有行)。

但是当我在文本字段中输入任何内容时,我没有得到任何结果。

当我只选择类别时查询(在这种情况下选择“IP-address”作为类别):

  SELECT dataid,
firstname,
lastname,
data.name dataname,
description,
ip,
TYPE,
TIMESTAMP
FROM DATA
INNER JOIN USER ON DATA.userid=USER.userid
WHERE TYPE='IP-adress'
AND DATA.name LIKE '%%'
AND description LIKE '%%'
AND ip LIKE '%%'
AND TYPE LIKE '%%'
AND firstname LIKE '%%'
AND lastname LIKE '%%'
ORDER BY TIMESTAMP DESC

如我所愿,这将返回包含所选类别的所有行。

当我在文本字段中输入内容时查询:

    SELECT dataid,
firstname,
lastname,
data.name dataname,
description,
ip,
TYPE,
TIMESTAMP
FROM DATA
INNER JOIN USER ON DATA.userid=USER.userid
WHERE TYPE='IP-adress'
AND DATA.name LIKE '%test%'
AND description LIKE '%test%'
AND ip LIKE '%test%'
AND TYPE LIKE '%test%'
AND firstname LIKE '%test%'
AND lastname LIKE '%test%'
ORDER BY TIMESTAMP DESC

我有一些组合,其中包含“测试”一词的列作为我的输入,但我没有得到任何结果。

我现在已经有一段时间了,我很确定我以前遇到过相反的问题,当我选择一个类别时我没有得到任何结果。

无论如何,我希望另一双眼睛可以帮助我解决这个问题。如果您需要更多代码,请提出要求!

最佳答案

这是因为您对所有条件都使用了 AND。它将在所有 fiends 中搜索测试,如果一个字段没有测试,则条件失败。试试这个方法

SELECT dataid,
firstname,
lastname,
data.name dataname,
description,
ip,
TYPE,
TIMESTAMP
FROM DATA
INNER JOIN USER ON DATA.userid=USER.userid
WHERE TYPE='IP-adress'
AND (DATA.name LIKE '%test%'
OR description LIKE '%test%'
OR ip LIKE '%test%'
OR TYPE LIKE '%test%'
OR firstname LIKE '%test%'
OR lastname LIKE '%test%')
ORDER BY TIMESTAMP DESC

关于MySQL SELECT "LIKE"参数无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19656700/

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