Я разрабатываю PHP-скрипт с подключением базы данных MySQL. Проблема, с которой я столкнулась, заключается в том, что мои запросы должны быть оптимизированы, потому что я обрабатываю много информации, и для этого я делаю большие запросы.MySQL - пользовательская ошибка в выражении WHERE
Чтобы написать пример, я не буду писать большой запрос, но один для вас, чтобы быть в состоянии увидеть, что мне нужно:
SELECT db1.name, db1.pass, db1.user_id, db2.datetime, db2.user_id
FROM database1 db1, database2 db2
WHERE db1.name = 'name'
AND db1.pass = 'pass'
AND db1.user_id = db2.user_id
Что мне нужно знать, если запрос не удается, так как имя и pass неверны или потому, что user_id не равен в обеих таблицах.
В принципе, мне нужно вернуть номер ошибки или что-то в этом вопросе, чтобы иметь возможность идентифицировать ошибку в запросе и выводить пользовательское сообщение: «Ваш пароль и пароль неверны». или «У вас нет разрешений в базе данных2».
Заранее благодарен!
Я считаю, что SQL не является местом для такой бизнес-логики. Однако, я думаю, это возможно с помощью хранимой процедуры: возможно, это не то, что вы хотите. – Xaqq
Я согласен с @Xaqq, что вы не должны делать это в SQL. Нормально, что вы делали бы проверку на стороне клиента, а не на сервере (или в этом случае на БД). Но в некоторых случаях я понимаю, что могут быть исключения. Процедура магазина сделала бы трюк. – Sebastien
Но даже с процедурой магазина это все равно не оптимально. То, как я это вижу, вам нужно будет вызвать процедуру Store, которая запустит одну запись и проверит оба условия, и это будет для всего набора записей обоих БД. Не самый быстрый и лучший способ достичь своей цели. – Sebastien