複数のテーブル選択でmysqlでテキスト検索を実行するには

私はデータベースの2つの部分を持って、その中に5つのテーブルがあり、私は使用していたmysqlでテキスト検索を行う

"SELECT * FROM myTable1 WHERE content LIKE '% helo%'".

そして

"SELECT * FROM myTable2 WHERE text LIKE '% helo%'".

それらを1つに組み込む方法。

0
テーブルのスキーマと期待している結果をお知らせいただければ、クエリの最適化もお手伝いします。
追加された 著者 Jan S,

2 答え

Timofey Stolbovが示唆しているように、あなたはUnion Queryを使うことができますが、

Union節は、2つの "select"ステートメント間で重複する行を削除します。

     

UNIONクエリ内の両方のSQL文は、同様のデータ型を持つ結果セット内で同じ数のフィールドを同じ順序で持つ必要があります。

http://www.techonthenet.com/sql/union.php

2
追加された

UNION を使用することができます。

SELECT * FROM content WHERE myTable1 LIKE '% helo%'
UNION
SELECT * FROM myTable2 WHERE text LIKE '% helo%'
1
追加された
ユニオン内の個々のクエリは、同じNUMBER個の列を返さなければならず、それらの列は同じ型を持たなければなりません(MUST )。 1つのクエリが5つのvarcharsを返し、もう1つのクエリが3つのintを返すと、共用体は失敗します。
追加された 著者 Marc B,
私のスクリプトにはエラーがありますが、自分の仕事を修正できますか?SELECT * FROM WHERE LIKE%helo%)間違って修正してください。
追加された 著者 ukung,
(SELECT * FROM hot WHERE content LIKE '%helo%')UNION(SELECT * FROM analysis WHEREタイトルLIKE '%helo%')メッセージエラー: "#1222 - 使用されたSELECTステートメントの列数が異なります。知りません?
追加された 著者 ukung,
したがって、フィールド名の型とサイズは同じでなければなりません。
追加された 著者 ukung,
@ukung最初のSELECTのテーブル名はどこですか?
追加された 著者 Timofey Stolbov,
@ukungはい。これを修正するには、 SELECT * ... の代わりに(SELECT col1、col2 ...)UNION(SELECT col1、col2 ...)
追加された 著者 Timofey Stolbov,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com