Есть 4 ячейки, нужно вставить значение в пустую, т.е. если ячейка `A` пустая, то вставляй в нее, допустим 10, далее, если ячейка `A` занята, то проверить ячейку `B`, если она пуста, то вставляй в нее 10, иначе, проверяй далее ячейку `C`, если она пуста, вставляй в нее 10, и так же само с ячейкой `D`, если все заняты, то вообще вставляй в новую запись в ячейку `A` значение 10. Мой запрос выглядит так:
mysql> UPDATE `mytable` SET `A`=10,`B`=10,`C`=10,`D`=10 WHERE `A` IS NULL OR `B` IS NULL OR `C` IS NULL OR `D` IS NULL LIMIT 1;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0
увы, это вставляет во все ячейки значение 10. Может возможно как-то прерывать запрос когда в какое-либо одно и только одно поле было вставлено значение? Конечно очень хотелось бы еще и if affected=0 INSERT INTO `mytable`(`A`) VALUES(10) зачудить, но моим возможностям и познаниям пока это тяжело, надеюсь на помощь сообщества.
Примечание:
> предварительно узнайте какая пустая, потом уже делайте UPDATE
логично.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.