SQLをもっとスマートにか記述したいです。
データベースはMysqlを使っており、データベースにはtag1,tag2,tag3,tag4,tag5というカラムがあり、その中のいずれかに一致する値があればデータを引っ張ってくるようにしています。
【コード】
sql = "SELECT code,name,about FROM character WHERE tag1 LIKE word OR tag2 LIKE word OR tag3 LIKE word OR tag4 LIKE word OR tag5 LIKE word OR tag3 LIKE word ORDER BY code DESC LIMIT 1,10";
whereの後のtag1 LIKE word OR tag2 LIKE word OR・・・のところをもっと簡潔に記述する方法はありますか?
他にもお気づきの点があればご教示いただきたいです。
コードは https://teratail.com/help/question-tips#questionTips3-7 の [コード] に修正してください。
質問にCREATE TABLE文も載せてください。
SQLだけでいきたいのでしたらPHPなどプログラミング言語要素は排除してSQL文だけを提示したほうが良いでしょう。
それとも「プログラミング言語側でスマートに記述したい」ということでしょうか。
いずれにしてもコードはマークダウンのcode機能を用いてご提示ください。
細かいですがtag3が2回出てきてます。
「character」という名称のテーブルは予約語です。使わない方が良いでしょう。
https://dev.mysql.com/doc/refman/5.6/ja/reserved-words.html
確かに`character` とすれば通るのは通りますが、あまりよろしくはありません。
皆様数々のご指摘ありがとうございます。
これから修正いたします。
修正するならタイトルも直したほうが良い。
「SQL分」→「SQL文」の事だったんだけど。
gentaro様
すいません、誤字に気づいていませんでした。
今訂正しました。
回答2件
あなたの回答
tips
プレビュー