- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CREATE VIEWのUNION)
CREATE VIEWとUNIONを使用して複数列を一括検索する方法
このQ&Aのポイント
- MySQLサーバー(XAMPP1.7.7 )で、CREATE VIEWとUNIONを使用して、複数列を結合した文字列を作成し、一括検索する方法について教えてください。
- 質問文章からB列からE列を結合した文字列を作成し、A列に表示させる方法を知りたいです。
- CREATE VIEWとUNIONを使って、A列にB列からE列を結合した文字列を表示し、Likeで検索できる方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>A列に、B列~E列の結合した文字列を吐き出して、Likeで検索すれば一括検索が出来る。 もしどうしてもやりたいならそれぞれのデータ型を文字列に変換しつつ concatでつなげばいいでしょう。 create table tableA (No int,name varchar(30),birth date,address varchar(200)); insert into tableA values(1,'伊藤','1970-01-01','秋田'),(2,'山形','1950-01-01','宮城'),(3,'市川','1960-01-01','新潟'); select concat(cast(No as char ),char(0),name,char(0),date_format(birth,'%Y/%m/%d'),char(0),address) as colA from tableA; →数値であるNoはcharにキャスト、date型のbirthは日付フォーマットした文字列に、 セパレータにchar(0)をつかって文字のつなぎの誤作動を調整 問題点: ・型を変換してまで検索対象にするのは効率がよくない ・セパレータによってはつなぎの部分が誤作動する可能性がたかい ・そもそもインデックスが全く考慮されていない >解決方法 普通に一つ一つのカラムについてLIKEで検索し、それぞれをORでつなぎます。
お礼
ご回答ありがとうございます。 concatで解決できますね。 問題点のご指摘もありがとうございます。 インデックスまで考慮してませんでした。 解決方法までいただきありがとうございます。 おっしゃられるとおり、Like + or すれば解決しますね・・・。 情報ありがとうございました。