質問: SELECT * FROM user_data WHERE name3 LIKE '%ヤマダ%'; では読み込めますが SELECT * FROM user_data WHERE * LIKE '%ヤマダ%'; ではエラーがでます。 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '* LIKE '%ヤマダ%'' at line 1 syntaxエラーとのことですが、name3を*に変えただけです。 WHERE句で全カラム検索とかはできないのでしょうか?
回答: なるほど、発想が柔軟でちょっと感心しました。できても良さそうですよね。 私も昔、or で似たようなことを考えたことがあります。 a = 1 or a = 2 が a = 1 or 2 となぜ書けないのかみたいなことですが、 SQLに関しては、in で、できますけどね。→ a in(1,2) プログラミング言語では出来ませんね。 WHERE * LIKE '%ヤマダ%'; がなぜ出来ないのか考えてみたのですが やはりカラムによっていろいろな型があるからかなと思います。 LIKE演算子は、charやvarchar等の文字列型の評価をするものなので、 日付型とか整数、小数型では、どのように評価したら良いか決められないからでしょうね。 なので結局 column1 like '%ヤマダ%'; or column2 like '%ヤマダ%'; のようにするしか無いですね。 どのような構文が許可されるのかは、各DBとISOで規定されたSQLがあるので、検索してみると良いかも知れません。 いろいろと覚えてくると当たり前に思って頭が固くなってきますので、そのやわらか頭は大切にして欲しいと思います。