mysql在多个表中应用通配符不起作用

5sxhfpxr  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(292)

我正在尝试做一个搜索框,它可以使用mysql通配符从多个表中进行搜索,并将结果显示为输出。
错误代码为:
警告:mysqli\u error()只需要1个参数,第16行的c:\xampp\htdocs\test\crud21\search.php中给出了0

g6baxovj

g6baxovj1#

使用 UNION 从多个表中获取结果并合并它们。

SELECT name
FROM bd
WHERE name LIKE '%$query%'
UNION
SELECT name
FROM info
WHERE name LIKE '%$query%'
UNION
SELECT name
FROM users
WHERE name LIKE '%$query%'

如果确实要联接所有表,则需要分别为每个表指定名称匹配。

SELECT b.*, i.*, n.*
FROM bd AS b
CROSS JOIN info AS i
CROSS JOIN users AS u
WHERE b.name LIKE '%$query%' AND i.name LIKE '%$query%' AND u.name LIKE '%$query%'

但是,这将创建每个表中所有匹配行的叉积,很难看出它有什么用处。如果其中任何一个表没有匹配的行,那么将生成一个空的叉积。

相关问题