• 締切済み

MySQL(4.1)でのサブクエリ結果をLIKE演算子を用いて検索したいです。

漢字名を入力してもらい、personalテーブルを参照して漢字(personal.j_search)からローマ字名(personal.e_search)のレコードから副問い合わせをして、gijirokuテーブルから漢字名を含む行とローマ字を含む行をOR検索したいです。 下記のとおり考えましたが。。。 副問い合わせの結果がLIKE演算子できません。 (和名でのLIKE検索とローマ字名の検索は、できますが、ローマ字名をLIKE検索する方法がわかりません。) 教えてください。 SELECT * FROM gijiroku WHERE gijiroku.title LIKE '%山田太郎%' OR gyouseki.title = ANY (SELECT personal.e_search FROM personal WHERE personal.j_search LIKE '%山田太郎%')

  • MySQL
  • 回答数2
  • ありがとう数1

みんなの回答

回答No.2

>>抽出条件は、 続きがちょっと気になる・・・。 MySQLって、結合できたっけ・・・? できるなら以下でいいのかな? SELECT * FROM gijiroku , personal WHERE personal.j_search LIKE '%山田太郎%' AND (INSTR(gijiroku.title, personal.j_search) > 0 OR INSTR(gijiroku.title, personal.e_search) > 0) 今MySQLがないので、自信ない・・・。

回答No.1

う~ん、理解力不足か。 やりたい事がよくわからない・・・。 ローマ字のレコードはどのテーブルが持ってるの? その抽出条件として、何を使うの?

john77
質問者

補足

すいません 初心者ななもので。。 ローマ字のレコードは、personalテーブルにあります。 CREATE TABLE `personal` ( `e_search` varchar(255) default NULL, `j_search` varchar(255) default NULL, `id` int(255) NOT NULL auto_increment, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=sjis; personalのイメージは、下記のとおり。。 e_search,j_search,id Yamada Taro,山田太郎,1 Inoue Taro,井上太郎,2 gijirokuのイメージは、下記のとおりです。 title,id Inoue Taro He can speak English fluently,1 山田太郎 会話の内容。。,2 そこで、SQL文で漢字名を入力すると、 漢字で記述されている議事と英語で記述されている 議事を検索できるようにしたいのです。 抽出条件は、

関連するQ&A

  • MySQL WHERE句のLIKE検索

    初心者ですみません。 MySQL WHERE句のLIKE検索で、引っかかった文字列を 除いた項目を表示させるにはどうしたらいいでしょうか。 例えば、 SELECT * from [テーブル名] where [フィールド名] like '%あ%'; として、「あ」が入っているレコードを検索し、 該当しないレコードを表示させる。 どうか教えてください。よろしくお願いします。

  • SQLでlike検索条件を副問い合わせ結果にしたい

    SQLでlike検索する際、検索キーワードを副問い合わせの結果文字列とする方法があればご教示下さい。 イメージでは、、、 select A1列 from A表 where A1列 like '(select B列 from B表 where 条件)'; みたいなのが可能であればいいのですが。。。( 宜しくお願いします。

  • LIKE検索の場合うまくいきません

    WEBアプリとSQLServerでSELECTをするときに不正をされないように SELECT * FROM DB WHERE DB.A = 検索文字 を SELECT * FROM DB WHERE DB.A= @A のようにして、@Aを後で指定しますが、 SELECT * FROM DB WHERE LIKE '%検索文字' のようにLIKE検索の場合うまくいきません。 どのように記述したらいいのでしょうか? SELECT * FROM DB WHERE DB.A LIKE @A --> 駄目 SELECT * FROM DB WHERE DB.A LIKE '%@A' --> 駄目

  • LIKEで検索

    MySQL 4.0.20 + PHP で名前が入ったテーブルよりLIKEを使って検索すると全然関係のない名前まで引っ張ってきます。 SELECT * FROM `lady` WHERE name LIKE 'らむ' 上記で検索すると 「とも」って名前まで引っ張ってきます。 SELECT * FROM `lady` WHERE name LIKE 'らな' だと 「るる」って名前も引っ張ります。 どうも「ら行」の検索がうまく出来ないようです。 何か回避方法はあるのでしょうか? よろしく御願いします

    • ベストアンサー
    • MySQL
  • mysqlでLIKEで検索について

    KEYIDでKから始まるものを探そうと思っていますが、1件しか表示されず困っております。 ********************************** KEYID(カラム名) K1001 K1002 K1003 select * from テーブル名 Where KEYID LIKE 'K%' [実行結果] K1001 **********************************

    • ベストアンサー
    • MySQL
  • MySQLで期間指定でキーワード検索するには?

    PHPでMySQLを利用し開発を行っています。 検索ボックスにキーワードを入力して検索をしたいのですが、期間を指定して検索できるようにする方法が分かりません。 さらに1ページに五件ずつ表示するようにしています。 下記はキーワード検索として動いているプログラムです。 例は2つのフィールドから検索しています。 SELECT * FROM テーブル名 WHERE フィールド名1 LIKE '%$search%' OR フィールド名2 LIKE '%$search%' LIMIT 0, 5; これに BETWEEN 期間1 AND 期間2  を追加して完成させようと思っているのですが、 どうも上手くいかないので、どのように書けばよいか教えて下さい。 よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • mysqlのmatch() against()で検索結果が取得できませ

    mysqlのmatch() against()で検索結果が取得できません。 select * from fulltexttable where match( a ) against( '+ほげ' in boolean mode ) で検索結果は0件ですが、 select * from fulltexttable where a like '%ほげ%' だと検索結果は取得できます。 aカラムにはフルテキストインデックスは貼ってあります。 mysqlのバージョンは5.0.77 hogeテーブルはMyISAM どなたか助けてください。

  • 曖昧検索LikeのOR条件

    アクセスでSQLを作成してます。 プロンプトで3つ項目を入力(未入力時はその分を考慮しない) して一致するのを検索する場合 --------------------------- select * from TABLE where 項目名 in ([項目1],[項目2],[項目3]) --------------------------- とする事で出来ました。 ただ、今検索を曖昧検索にしようとしています。 --------------------------- select * from TABLE where 項目名 like ("*" & [項目名1] & "*") or 項目名 like ("*" & [項目名2] & "*") or 項目名 like ("*" & [項目名3] & "*") --------------------------- 上記のようにするとプロンプトで未入力(リターン押下)時に 全てを検索対象にしてしまいます 未入力時は、そのプロンプトの条件自体を無効にしたいです。 何か良い方法はありますでしょうか?

  • 検索について

    検索について SELECT * FROM テーブル名 WHERE 列名 LIKE '条件' を使って検索できるプログラムを作りました。 これにORの条件で列名を追加したいのですが可能でしょうか? 「条件が列名1と列名2のどちらかにあてはまる」といったような。 回答お待ちしています。

    • ベストアンサー
    • MySQL
  • LIKEを用いたあいまい検索の方法

    SELECT `a2` FROM `a1` , `b1` WHERE a1.a2 LIKE b1.b2; を部分一致で検索したいのですが不可能なのでしょうか? SELECT `a2` FROM `a1` , `b1` WHERE a1.a2 LIKE '%b1.b2%'; とするとエラーは出ないのですが、検索結果が0になってしまうのです。 [開発環境] MySQL 4.0.x a1 b1 +--------+    +------+ | a2    |    | b2   | +-------+    +-------+ | abcde  |    | cd    | +-------+    +-------+ よろしくお願い致します。

    • ベストアンサー
    • MySQL