导致此错误的原因是什么?怎么解决它?
$find = 'hello';
$data = $this->db->query('SELECT * FROM tour_foreign_residence WHERE name LIKE "%' . $find . '%" UNION SELECT * FROM tour_foreign WHERE name LIKE "%' . $find . '%"');
错误:
发生数据库错误
错误编号:1222
使用的SELECT 语句具有不同数量的列
SELECT * FROM tour_foreign_residence WHERE name LIKE“%hello%”UNION SELECT * FROM tour_foreign WHERE name LIKE“%hello%”
文件名: D:\ xampp \ htdocs \ system \ database \ DB_driver.php
行号:330
答案 0 :(得分:2)
使用UNION
运算符有两个主要规则:
在您的情况下,第一个规则被忽略。
请改用join
运算符
答案 1 :(得分:1)
您确定需要UNION吗?
UNION要求您正在联合的所有查询在SELECT子句中具有相同的列数,因此您不应使用*,而是明确地编写您需要查询的字段。此外,clumns需要具有相同的数据类型。
答案 2 :(得分:0)
不要在查询中使用SELECT *
。而是写下您希望从数据库获取的实际列名。两个表中的列名应该相同。您目前有一个UNION
,看起来表格tour_foreign_residence
和tour_foreign
有不同的列。
答案 3 :(得分:0)
根据w3schools article about UNION operator:
UNION中的每个SELECT语句必须具有相同的名称 列数。列还必须具有类似的数据类型。 此外,每个SELECT语句中的列必须具有相同的顺序。