SQL

SQL WHERE カラム名 IN (x, y, z, …)

MySQL

 

基本形

 

SELECT
  *
FROM 
  users
WHERE users.job_id IN (1, 6);

 

実際はこういう形が多いはず

 

SELECT
  *
FROM 
  users
WHERE users.job_id IN (SELECT jobs.id FROM jobs WHERE job_code IN ('engineer', 'PM');

 

ここが先に実行される

 

(SELECT jobs.id FROM jobs WHERE job_code IN ('engineer', 'PM')

 

その結果でWHEREをする

SELECT
  *
FROM 
  users
WHERE users.job_id IN (1, 6)

 

 

WHERE カラム名 IN () で更新

だいたい()の中でSELECTして利用することが多いように思う。

INの中で副問い合わせを行っている例

UPDATE
    `job_designs`
SET `sample_designs.json` = '{
    "user_settings": {
        "id": 1,
        "job_enable": false 
    }
}'
WHERE `sample_designs.user_id` IN (SELECT users.id FROM users WHERE `users.job_id` = 3)
AND `job_designs.type` = 'engineer';

 

 

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)