- ベストアンサー
likeの使い方
LancerVIIの回答
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 私の環境ではどちらでも取得できているので 文字コードかなんかが関係しているのかもしれません。
関連するQ&A
- 複数カラムに対するLIKE文の最適化
column1~column3のデータに文字検索をしたいのですが、 下記のような不恰好なSQLしか思いつきません、、。 select * from tb where ( column1 like '%word1%' or column2 like '%word1%' or column3 like '%word1%' ) and ( column1 like '%word2%' or column2 like '%word2%' or column3 like '%word2%' ) and ( column1 like '%word3%' or column2 like '%word3%' or column3 like '%word3%' ) 試しに、 select * from tb where ( ( column1 or column2 or column3) like '%word1%' ) and ( ( column1 or column2 or column3) like '%word2%' ) and ( ( column1 or column2 or column3) like '%word3%' ) と考えたのですが、これですと検索結果0件になってしまいます。 もっとスマートなSQL文がありましたら、ご教授頂きたいです。
- ベストアンサー
- MySQL
- likeの使い方について
すみません。教えてください。。 ACCESSで下記2つのテーブルをunionでくっつけて nameの右端(1桁目)が同一のもの(CとCCなど)を抽出するため 下記のような構文を構築したのですが抽出されません。。 お手数ですがこちら何が原因となっているか教えていただけないでしょうか。。 よろしくお願い致します。 id name id name 1 a 1 a 2 b 2 b 3 c 3 cc 4 d 5 ee 5 e select * from (select * from tb1 union select * from tb2) as A where name like '*c' or name like '*d' or name like '*e'
- ベストアンサー
- その他(データベース)
- MYSQLで全てのカラムから検索する。
tbというテーブルのbangというカラムに4が含まれていれば表示というのは select * from tb where (bang) like '%4%' ; という形になりますが、このtbテーブルにさらにname,tukiというカラムがあったとして カラムに関係なくレコードのどこかに4が入っていれば抽出するというSQL文が書きたいです。 select * from tb where bang like '%4%' or name like '%4%' or tuki like '%4%' ; と書くことで何とか今まではやってきたのですが、カラム数が増えてきてしまったので、ものすごく長いSQL文なってしまいました。 もう少しスマートにする方法はありませんか?
- ベストアンサー
- MySQL
- like文の書き方を教えてください。
テキストボックスを作成して入力した値がデータベースに 格納されている場合表示されるSQL文を書いていますが syntaxエラーになってしまい原因がわかりません。 String name = request.getParameter("name"); //入力された名前 String sql = new String(); <%-- SQL文 --%> sql += " select * from data "; sql += " where name "; sql += " like" + "('%" + s_name + "%')"; sql += " ) "; <input type="text" name="name" value=""> //textBox エラー表示 8番目: SQL = select * from data where name like('%i%') ) 9番目: ResultSetに格納失敗 : java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 となってしまいます。 コマンドプロンプト上で select * from data where name like('%itou%'); この場合はちゃんと表示されます。 お分かりになる方よろしくお願い致します。
- ベストアンサー
- MySQL
- RLIKE vs LIKE
■1 SELECT `id` FROM `user` WHERE `stat` RLIKE ',1,' ■2 SELECT `id` FROM `user` WHERE `stat` LIKE '%,1,%' 1と2では、どちらが速いのでしょうか? また、 ■3 SELECT `id` FROM `user` WHERE `text` RLIKE ',(1|6|3),' ■4 SELECT `id` FROM `user` WHERE `stat` LIKE '%,1,%' OR `stat` LIKE '%,6,%' OR `stat` LIKE '%,3,%' 3と4の様に検索する値が増えて行った場合では、どちらが速いのでしょうか? ベンチとれと言われればそれまでですが、お時間頂ければ、ご教授の程 、宜しくお願い致します。
- ベストアンサー
- MySQL
- データ内の「\」や「'」を抽出するには
データ内に「\」や「'」が含まれているデータを抽出するには SELECT * FROM table WHERE column LIKE '%\%' SELECT * FROM table WHERE column LIKE '%'%' で良いのでしょうか?
- ベストアンサー
- MySQL
- mysqlでLIKEで検索について
KEYIDでKから始まるものを探そうと思っていますが、1件しか表示されず困っております。 ********************************** KEYID(カラム名) K1001 K1002 K1003 select * from テーブル名 Where KEYID LIKE 'K%' [実行結果] K1001 **********************************
- ベストアンサー
- MySQL
- like で検索をすると出る場合と出ない場合がある理由は?
MySQLに郵便番号データ(UTF-8)を入れて、phpmyadmin内で以下のように検索をかけました。 SELECT * FROM `post` WHERE `city` LIKE '%吾川郡いの町%' これは無事抽出されました。 ところが、以下を実行すると何も抽出されません。 SELECT * FROM `post` WHERE `city` LIKE '%いの町%' 範囲を広げたのに何故・・・という感じなのですが、考えられる要素は何かお分かりでしょうか。
- ベストアンサー
- MySQL
- 【初歩】 SELECT文で意図した照会結果が得られない。NULLの扱いは?
var1 var2 ------------- abc null ------------- abc null ------------- abc null ------------- のようになっているテーブルに対して、 (1) select * from mytable where var1 = 'abc' (2) select * from mytable where var1 = 'abc' and var2 is null などとやれば、3件全部照会できますが、 (3) select * from mytable where var1 = 'abc' and var2 != '1' (4) select * from mytable where var1 = 'abc' and var2 != 1 とやっても1件も出てこないのですが、なぜでしょうか? 「NULLだって1ではない」わけだから、3件照会できてくれないと 困るのですが・・・
- ベストアンサー
- MySQL
お礼
原因がわかりましたのでご報告します。 mysqlのlikeの日本語に関するバグでした。 旧)select * from myTable where name like "%蜘蛛%" 新)select * from myTable where name regexp "蜘蛛" に変更することで、問題は回避できました。