この SO Question: MYSQL UPDATE: Is it possible to confirm some fields first?によると、
UPDATEin で次のようなことができますMySql。
UPDATE snakes_tb
SET snake_pic_urls= CONCAT(snake_pic_urls,'*".$newSnakePic."'),
snake_default_pic = IF(snake_default_pic = '' OR snake_default_pic = 'NO_PIC' ,'default_pic',snake_default_pic)
WHERE snake_id={$id}
IFステートメントの実装に注目してください。このメソッドは、クエリでのサブクエリの使用に直面しています。
ただし、それを念頭に置いて、 を使用して同様のことを行うにはどうすればよいでしょSELECTうか?
次の例を想定します。
<?php
///The Bad String in with which columns should NOT be selected.
$badString ="_none";
このクエリにはColumns、The Longest Way を含む可能性のある約 10 のクエリが$badString;
あり、場合によっては実際には非現実的です。
$selectQuery ="SELECT * FROM snakes_tb WHERE snake_is_deadly= 'Yes' AND col1 <> $badString AND col2 <> $badString AND col3 <> $badString AND col4 <> $badString AND col5 <>$badString etc...";
この方法はより正確なように見えますが、チェックする列の数が妥当な数よりも多い場合、実用的ではありません。UPDATEを使用した上記のクエリを考えると、次のIF statementようなクエリを成功させる最善の方法は何でしょうかSELECT。
1)SELECTすべての行と列、2)で列を持たない行のデータのみを表示します。$badString長い道のりは必要ありませんか?
つまり、SELECTどの列にも の値がない行のみ$badString