[英]PHP, MySQL UNION Query Error
我在嘗試使用PHP / MySQl-AJAX調試此查詢時遇到問題:變量$ param是表單文本框上AJAX調用的結果。 本質上,我試圖對三個數據庫表(它們不幸地具有不同的字段)進行動態搜索(因此稱為concat)。 數據是具有使用不同方法生成的空間位置(對於前兩個表)的作業的地址,最后一個表是非空間數據。
$fetch = "(SELECT JobNo AS JobNo, CONCAT(Title1, '-', Title2, '-', Title3) AS Description, 'Hurricane' as type FROM Hurricanev2 WHERE Title1 REGEXP '$param' OR Title2 REGEXP '$param' OR Title3 REGEXP '$param')
UNION ALL
(SELECT jobNo AS JobNo, description As Description, address As Geocoded_address, 'geocoded' as type FROM jr WHERE description REGEXP '$param' OR address REGEXP '$param')
UNION ALL
(SELECT job As JobNo, description As Description, 'plan' as type FROM register WHERE description REGEXP '$param')";
while ( $row = mysql_fetch_object( $fetch ) ) {
$sResults .= '<tr>';
$sResults .= '<td>' . $row['JobNo'] . '</td>';
$sResults .= '<td>' . $row['Description'] . '</td></tr>';
}
提前致謝
您不能合並具有不同列數的結果集。
嘗試以下方法;
$fetch = "(SELECT JobNo AS JobNo, CONCAT(Title1, '-', Title2, '-', Title3) AS Description, 'Hurricane' as type, 'extra' FROM Hurricanev2 WHERE Title1 REGEXP '$param' OR Title2 REGEXP '$param' OR Title3 REGEXP '$param')
UNION ALL
(SELECT jobNo AS JobNo, description As Description, address As Geocoded_address, 'geocoded' as type FROM jr WHERE description REGEXP '$param' OR address REGEXP '$param')
UNION ALL
(SELECT job As JobNo, description As Description, 'plan' as type, 'extra' FROM register WHERE description REGEXP '$param')";
對於UNION,每個SELECT的列數必須相同。 嘗試在第一個和最后一個SELECT上添加一個額外的null以使輸出均勻。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.