質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

2回答

1355閲覧

MySQL エラーを解決したいです

encho

総合スコア182

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2020/04/08 11:28

編集2020/04/08 13:16

#MySQLのsyntaxエラーについて

Webアプリケーション上で以下のSQLを発行するとエラーが発生します

sql

1SELECT * FROM MESSAGE WHERE MESSAGE.sender_user_id = (?) 2AND MESSAGE.receiver_user_id = (?) 3UNION SELECT * FROM MESSAGE WHERE MESSAGE.sender_user_id = (?) 4AND MESSAGE.receiver_user_id = (?))ORDER BY message_time ASC 5 binding parameter [1] as [INTEGER] - [1] 6 binding parameter [2] as [INTEGER] - [8] 7 binding parameter [3] as [INTEGER] - [8] 8 binding parameter [4] as [INTEGER] - [1]

発生するエラー

error

1java.sql.SQLSyntaxErrorException: 2You have an error in your SQL syntax; 3check the manual that corresponds to your MySQL server version for the right syntax to use near 4'UNION SELECT * FROM MESSAGE WHERE MESSAGE.sender_user_id = (8) 5AND MESSAGE.recei' at line 1 6 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) ~[mysql-connector-java-8.0.19.jar!/:8.0.19] 7 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.19.jar!/:8.0.19] 8 at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.19.jar!/:8.0.19] 9 at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953) ~[mysql-connector-java-8.0.19.jar!/:8.0.19] 10 at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1003) ~[mysql-connector-java-8.0.19.jar!/:8.0.19] 11 at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) ~[HikariCP-3.4.2.jar!/:na] 12 at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) ~[HikariCP-3.4.2.jar!/:na] 13 at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:57) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 14 at org.hibernate.loader.Loader.getResultSet(Loader.java:2292) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 15 at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2050) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 16 at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2012) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 17 at org.hibernate.loader.Loader.doQuery(Loader.java:953) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 18 at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 19 at org.hibernate.loader.Loader.doList(Loader.java:2815) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 20 at org.hibernate.loader.Loader.doList(Loader.java:2797) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 21 at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2629) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 22 at org.hibernate.loader.Loader.list(Loader.java:2624) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 23 at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:338) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 24 at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:2123) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 25 at org.hibernate.internal.AbstractSharedSessionContract.list(AbstractSharedSessionContract.java:1134) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 26 at org.hibernate.query.internal.NativeQueryImpl.doList(NativeQueryImpl.java:173) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 27 at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1526) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 28 at org.hibernate.query.Query.getResultList(Query.java:165) ~[hibernate-core-5.4.10.Final.jar!/:5.4.10.Final] 29 at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:126) ~[spring-data-jpa-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] 30 at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:88) ~[spring-data-jpa-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] 31 at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:154) ~[spring-data-jpa-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] 32 at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:142) ~[spring-data-jpa-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]

ローカル環境では問題なく動いていたのですが、
awsで動かすとエラーになってしまいます。

syntax errorなので文法に問題があると指摘されていますが
自分では問題が見つけられませんでした。

何かアドバイスをいただけると幸いです。
よろしくお願いいたします。

MySQLは5.7.28を使用

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

select 部分を括っているカッコを外しましたところエラーがなくなりました。
UNION時のカッコについての理解が足りていませんでした。

投稿2020/04/11 01:50

encho

総合スコア182

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

AND MESSAGE.receiver_user_id = (?))

ここの後ろの閉じカッコが二つあるのが怪しい気がします。

追記
上のではダメでしたか。

sql

1 2(SELECT * FROM MESSAGE WHERE MESSAGE.sender_user_id = (?) 3AND MESSAGE.receiver_user_id = (?)) 4UNION (SELECT * FROM MESSAGE WHERE MESSAGE.sender_user_id = (?) 5AND MESSAGE.receiver_user_id = (?))ORDER BY message_time ASC 6

両方のselect文をカッコで括ってみてもダメですよね。

投稿2020/04/08 15:36

編集2020/04/09 00:54
hayato7

総合スコア1135

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

encho

2020/04/09 00:31

カッコを直してみましたが問題は変わらずでした...
encho

2020/04/09 01:14

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 'UNION (SELECT * FROM MESSAGE WHERE MESSAGE.sender_user_id = (8) AND MESSAGE.rec' at line 1 問題は変わらずでした...
encho

2020/04/09 01:41

カッコを外すことで解決できました
hayato7

2020/04/09 01:43

どこのカッコを外して解決したのでしょうか。
encho

2020/04/09 01:44

select 部分を括っているカッコを外しましたところエラーがなくなりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問