Вопрос по работе с MySQL

Регистрация
19.10.2018
Сообщения
189
Благодарностей
25
Баллы
18
Привет всем. Начал изучать работу с СУБД.
Встала такая задача:
В переменной х есть значение, в БД в ячейке есть значение y.
Как мне проверить на равенство, если х = y тогда не записываем в базу ничего, если не равно тогда добавляем строку с x.
 
Регистрация
12.07.2014
Сообщения
916
Благодарностей
373
Баллы
63
Взять из базы Y в переменную и сравнить в IF
X==Y
ну и две ветки вариации исполнения
 
Последнее редактирование:
  • Спасибо
Реакции: 6585_Лягуша

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
Привет всем. Начал изучать работу с СУБД.
Встала такая задача:
В переменной х есть значение, в БД в ячейке есть значение y.
Как мне проверить на равенство, если х = y тогда не записываем в базу ничего, если не равно тогда добавляем строку с x.
добавить индекс UNIQUE к y в таблице и не парится с проверкой вообще )))
 
  • Спасибо
Реакции: 6585_Лягуша
Регистрация
19.10.2018
Сообщения
189
Благодарностей
25
Баллы
18
Взять из базы Y в переменную и сравнить в IF
X==Y
ну и две ветки вариации исполнения
Да в том то и дело, что это долго. С бд и начал работать, чтобы ускорить процесс. У меня в бд может быть 100000 строк и сравнивать через такой метод, долгая затея. А потом брать следующее значение и опять сравнивать.


добавить индекс UNIQUE к y в таблице и не парится с проверкой вообще )))
Я просто не пойму логику, как будет работать эта штука. Если предположим значения идентичны, ответ придет от БД в виде false? Верно?

UPDATE: Докумекал )) если значение уникально, помещает в базу, если не уникально выход по красной ветке. Огромная благодарность добрый человек. Весь день бился с этой задачей.

UPDATE 2: А я вот еще что подумал, а если внутренная ошибка бд, тогда же тоже будет выход по красной ветке. Как же отследить этот момент.
 
Последнее редактирование:

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
Да в том то и дело, что это долго. С бд и начал работать, чтобы ускорить процесс. У меня в бд может быть 100000 строк и сравнивать через такой метод, долгая затея. А потом брать следующее значение и опять сравнивать.



Я просто не пойму логику, как будет работать эта штука. Если предположим значения идентичны, ответ придет от БД в виде false? Верно?

UPDATE: Докумекал )) если значение уникально, помещает в базу, если не уникально выход по красной ветке. Огромная благодарность добрый человек. Весь день бился с этой задачей.

UPDATE 2: А я вот еще что подумал, а если внутренная ошибка бд, тогда же тоже будет выход по красной ветке. Как же отследить этот момент.
Error Code: 1062
Duplicate entry '44-9876-54321-42' for key 'ix_phone'
Я просто не знаю как зенно работает с базами данных в плане ошибок, поидее вы должны проверить ответ ошибки этой и дальше сами решать что делать.
 
  • Спасибо
Реакции: 6585_Лягуша

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)