0

PHP /MySQlを使用してこのクエリをデバッグしようとすると問題が発生します-AJAX:変数$ paramは、フォームテキストボックスでのAJAX呼び出しの結果です。本質的に、私は、残念ながら異なるフィールドを持つ3つのデータベーステーブル(したがって、連結)に対して動的検索を生成しようとしています。データは、異なる方法を使用して生成された(最初の2つのテーブルの)空間位置を持つジョブのアドレスであり、最後のテーブルは非空間データです。

            $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>';
    }

前もって感謝します

4

2 に答える 2

1

列数が異なる結果セットを結合することはできません。

次のことを試してください。

$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')";
于 2013-03-25T03:32:53.200 に答える
0

UNIONの場合、SELECTごとに同じ数の列が必要です。最初と最後のSELECTに余分なnullを追加して、偶数に入れてみてください。

于 2013-03-25T03:32:41.897 に答える