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

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

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

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

Q&A

解決済

3回答

10952閲覧

【MySQL】[配列データを変数へ格納できないか?]

star24star

総合スコア115

MySQL

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

0グッド

0クリップ

投稿2016/03/02 08:49

過去に、【MySQL】[カラム内で特定のデータ以外を取得したい] という質問をした中で、
カラム内の特定の値以外を取得する方法(<>!を使用する)をご教授いただきました。

これの応用で、
特定のカラム内データを変数へ代入して使用することは可能でしょうか?

SQL

1WHERE 2 code <> 1 3AND 4 code <> 2 5AND 6 code <> 3

SQL

1WHERE 2 code <> 'ja' 3AND 4 code <> 'us' 5AND 6 code <> 'ru'

のようにひとつずつ指定する場合、UNION ALLを使用したSQL文などのときに
その都度この条件を書かなければならなくなり、とても見栄えが悪いので
何かいい方法がありましたらご教授頂けると幸いでございます。

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

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

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

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

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

guest

回答3

0

ベストアンサー

やりたいことが今一つわかっていないのですが、提示されているSQLが冗長で、ということであれば、

SQL

1WHERE 2 code NOT IN (1, 2, 3) 3 4WHERE 5 code NOT IN ('ja', 'us', 'ru')

と書けます。

投稿2016/03/02 09:13

dupont_kedama

総合スコア925

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

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

star24star

2016/03/03 02:13

ご回答有難うございます。 たくさんあるWHERE条件をUNIONN ALLするごとに書くととても長いSQLになってしまうのでそれを防ぎたかったのですが、"NOT IN"という書き方があったのですね。 調べても出てこなかったのでとても助かりました。
guest

0

除外したいデータだけのテーブルを別に作って

lang

1where code not in (select code from table_b)

とか そういうことでしょうか?

投稿2016/03/02 09:22

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

star24star

2016/03/03 02:10

ご回答有難うございます。 そういう方法もあるのですね!今回は除外テーブルを作ることはできませんが今後の参考にさせていただきます。
guest

0

「特定のカラム内データを変数へ代入して使用」とは
SELECT結果を変数に代入したいってことですか?

それとも書かれているSQL文の文字列を変数に代入して、
UNIONする表のWHERE句で使いまわしたいということですか?

いずれにしても、標準SQLじゃ無理じゃないですかね?
ストアドを使えば前者はできそうですが。

一応MySQLにはユーザー定義変数というものがあるので、
それを使って試してみてはいかがでしょうか?

SQL

1SET @id:="foo"; 2 3SELECT * FROM MEMBER WHERE ID = @id;

あとはSQLの組み立てをプログラムや、
O/Rマッパーなどで動的に組み立てるしかないんじゃないですかね。

投稿2016/03/02 09:11

root_jp

総合スコア4666

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

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

star24star

2016/03/03 02:16

ご回答有難うございます。質問の意図としては後者でした。 この変数のやり方を試してみたのですが、上手く出来なかったので(書き方が間違えていたのかもしれませんが)質問させていただきました。 PHPなどと一緒に組めればやり方はいろいろあるのですがSQLのみとなるとちょっと大変ですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問