[初歩] はじめの2文字を切り取って真偽を判定するWHERE文

このQ&Aのポイント
  • 初心者向けの質問です。テーブルとカラムを指定して、はじめの2文字が「横浜」と一致するかどうかを判定するWHERE文を作成したいのですが、phpMyAdminで実行するとエラーが発生します。エラーメッセージによると、SQL構文に誤りがあるようですが、具体的にどこが間違っているか教えてください。よろしくお願いします。
  • 初心者のため、わかりやすい説明をお願いします。phpMyAdminを使用してテーブルのカラムに対して、はじめの2文字が「横浜」と一致するかどうかを判定するWHERE文を作成しようとしています。しかし、エラーが発生してしまい、どこが間違っているのか分かりません。具体的なエラーメッセージと共に、正しいWHERE文の作り方を教えてください。
  • はじめの2文字を切り取って、その値が「横浜」と一致するかどうかを判定するWHERE文の作り方について教えてください。phpMyAdminで実行してみたところ、エラーが発生しました。エラーメッセージを見る限り、SQL構文が誤っているようですが、具体的にどこが問題なのか教えてください。
回答を見る
  • ベストアンサー

[初歩] はじめの2文字を切り取って真偽を判定するWHERE文

例えば、テーブル:MYTABLE、カラム:CITYに、 横浜市緑区.... 川崎市宮前区... 藤沢市辻堂... …などと登録されているとします。ここで、SQL文で (1) はじめの全角2文字が「横浜」である (2) はじめの全角2文字が「横浜」でない(横浜以外) というWHERE条件をそれぞれ作りたいのですが。phpMyAdminで: (1) SELECT CITY FROM MYTABLE WHERE SUBSTRING( MYTABLE.CITY, 0, 4 ) = '横浜' ) (2) SELECT CITY FROM MYTABLE WHERE SUBSTRING( MYTABLE.CITY, 0, 4 ) != '横浜' ) などと実行してみたら、 #1064 - 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 ') LIMIT 0, 30' at line 1 などとエラーになります。何が誤っていますでしょうか?

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

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

(と)の数が違いますよ。

litton101
質問者

お礼

失礼しました、 煮詰まってて 気づきませんでした。 #エラーに書いてありますね ありがとうございました

関連するQ&A

  • 【初歩】SELECT文で思うような照会結果が得られない

    テーブル MYTABLEに、EMAILとPWというフィールドに、それぞれ、 name@example.jp、x6wvGZb7MZpBwMtQという文字列がINSERTされています。 これに対し、 SELECT * FROM `MYTABLE` WHERE `EMAIL` = 'name@example.jp' AND `PW` = 'x6wvGZb7MZpBwMtQ' を実行しても、レコードが返ってこないのですが、なぜでしょうか。 なお、 SELECT * FROM `MYTABLE` WHERE `EMAIL` = 'name@example.jp' なら1件返ってきますが、 SELECT * FROM `MYTABLE` WHERE `PW` = 'x6wvGZb7MZpBwMtQ' だと返ってきません。 シンプルな話なので、はじめはSQL文を手打ちしていてダメでした。 なので、phpMyAdminのGUIからSQL文を発行してみたら 一字一句同じSQL文が吐き出されましたし、照会結果も同じでした。

    • ベストアンサー
    • 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
  • UPDATE文のWHERE句について

    if(!is_null($_GET['sid'])) $sid = (int)$_GET['sid']; $sql = "UPDATE ideamemo_table SET update_date = '$update' WHERE sid = $sid;"; mysql_query($sql, $con) or die(mysql_error()); と書いた時に、下記のようなエラーが表示されます。 どこがどう間違っているのでしょうか。 $sidを、シングルクォーテーションでくくっても、エラーが出ます。 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 'WHERE sid = ''' at line 1

  • SQL文のselect文でwhereが使えない。

    皆様始めまして~初歩的な質問かもしれないですが postgresSQLのデータをpsqlコマンドでみるときに whereをつかわずに [xxxxxxx@yyyyyy ~]$ psql -q -c 'select * from employ_kanri' xxxxxx postgres 社員名 | 社員番号 | 勤務先 ------------------------+--------------+---------------------------- 田中 | 200700 | 横浜 と結果はでるのに、 whereを使うと [xxxxxxxx@yyyyy ~]$ psql -q -c 'select * from employ_kanri where 勤務先 = '横浜'' xxxxxx postgres ERROR: column "横浜" does not exist になるのはなぜでしょうか? ちなみにデータベースに入ってwhereコマンドを使うと問題なくできます。。 [xxxxxxx@yyyyyyy ~]$ psql xxxxxx postgres Welcome to psql 7.4.11, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit xxxxxxx=# select * from employ_kanri where 勤務先 = '横浜'; 社員名 | 社員番号 | 勤務先 ------------------------+--------------+---------------------------- 田中 | 200700 | 横浜 よろしくお願いします

  • SQL WHERE文のノットイコールについて

    初歩的な質問ですみません。 Oracle9iでsqlplusで接続しています。 「member_accountテーブルのdelete_flag(VARCHAR2)カラムの値が'1'ではない」ものを抽出したいと考えてます。 ただ、正しい結果が返ってきません。 何が問題でしょうか?よろしくお願いいたします。 ============================================================ SQL> select count(ID) from member_account; COUNT(ID) ---------- 16450 SQL> SQL> select count(ID) from member_account where delete_flag='1'; COUNT(ID) ---------- 107 SQL> SQL> select count(ID) from member_account where delete_flag<>'1'; COUNT(ID) ---------- 0 SQL> SQL> select count(ID) from member_account where delete_flag!='1'; COUNT(ID) ---------- 0 ============================================================ よろしくお願いいたします。

  • 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
  • select文、asで定義した桁をwhereで使用可能?

    SELECT ( IF(substring(p.TDATE,1,6) = '200407' ,p.PRICE,999999999) ) as 'MONTH1' from TBL_PRICE p where MONTH1<999999999 ; ↑こんな感じで使いたいのですが、これはエラーに なります(これをそのまんま使用するわけではないので、 このSQL自体へのツッコミはとりあえずいいです) >ERROR 1054: Unknown column 'MONTH1' in 'where clause' asで定義した桁をwhereで使用することはできますか?

    • ベストアンサー
    • MySQL
  • 文字例の比較について WHERE句

    文字例の比較について、教えてください。 DELETE_FLAGという項目には、文字列の"1"、もしくはNULLが入っています。 セレクト文でDELETE_FLAGが"1"以外のものを抽出したいのですが、うまくいきません。 以下のSQL文を実行した際に、結果として5件ヒットしてほしいのですが、なぜか0件となってしまいます。 select count(product_id) from hpk_atoz_list_view where delete_flag != '1'; 原因わかりますでしょうか? よろしくお願いいたします。 ============================================================================ SQL> select delete_flag, product_id from product_list_view; DELETE_FLAG product_ID ---------------------------------   0002 1 1003   0002 1 1003   0002 1 1003   0002   0002 8行が選択されました。 SQL> SQL> select count(product_id) from product_list_view where delete_flag != '1'; COUNT(product_id) ---------- 0 SQL> SQL> select count(product_id) from product_list_view where delete_flag = '1'; COUNT(product_id) ---------- 3 SQL> SQL> select count(product_id) from product_list_view where delete_flag is not null; COUNT(product_id) ---------- 3 SQL> SQL> select count(product_id) from product_list_view where delete_flag is null; COUNT(product_id) ---------- 5 SQL> =====以上=====

  • PHP+MySQL syntaxエラー

    SELECT * FROM option WHERE id='W01' SELECT * FROM option WHERE id='A01' を実行させたところ You have an error in your SQL syntax near 'option WHERE id='W01'' at line 1 You have an error in your SQL syntax near 'option WHERE id='A01'' at line 1 というエラーが返ってきました。 optionテーブルがあり、idというフィールドもあり、 idフィールドでW01、A01ともに存在します。 どなたかお答え頂ければと思います。

    • ベストアンサー
    • MySQL
  • WHERE文の中で除算

    SQLのWHERE文の中で計算をしているのですが、「除数が0です」とのエラーがでてしまいます。 同じ計算をSELECT文の中にいれると、エラーにならず、計算結果がでるのですが、どうしてでしょうか? SELECT DATA, (A + B - C) / (A + B) * 100 FROM table ↑この時は計算結果がでます。 SELECT DATA FROM table WHERE (A + B - C) / (A + B) * 100 <= 50.0 ↑「除数が0です」といわれてしまいます。