gpt4 book ai didi

php - 如何使用 LIKE 从 3 个表中进行选择

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

我想根据搜索查询显示行。但是,我有 3 个表,并且想要在所有 3 个表中搜索是否有类似 ('%$parameter%') 参数的内容。

这是我当前的代码:

SELECT a.Name as aName
, b.Name as bName
, c.Name as cName
FROM TableA a
, TableB b
, TableC c
WHERE a.Name LIKE '%$parameter%'
OR b.Name LIKE '%$parameter%'
OR c.Name LIKE '%$parameter%'

在 PHP 中我执行以下操作:

if($row['aName'] != ""){ echo $row['aName']; }
if($row['bName'] != ""){ echo $row['bName']; }
if($row['cName'] != ""){ echo $row['cName']; }

但是这...只是抛出所有表中的每一行,甚至是那些与参数不匹配的行。

我在 google 或 stackoverflow 上找不到任何有帮助的内容。

请帮忙!

最佳答案

你应该更新你的sql,这样它就不会返回3列而是1列,它也会稍微简化你的php:

 SELECT a.Name as aName
FROM TableA a
WHERE a.Name LIKE '%$parameter%'
union
SELECT b.Name as bName
FROM TableB b
WHERE b.Name LIKE '%$parameter%'
union
SELECT c.Name as cName
FROM TableC c
WHERE c.Name LIKE '%$parameter%'

这样您将只获得匹配的行,并且可以避免 3 个表之间不必要的完整笛卡尔积。

关于php - 如何使用 LIKE 从 3 个表中进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45537158/

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