Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Запрос "Если" ?

Сообщения:  [1-10] 

 
 автор: tolyan   (11.05.2010 в 04:19)   письмо автору
 
   для: tolyan   (11.05.2010 в 00:03)
 

Так что, такой запрос неосуществим?

  Ответить  
 
 автор: tolyan   (11.05.2010 в 00:03)   письмо автору
 
   для: Trianon   (10.05.2010 в 23:58)
 

В том-то и проблема, собственно.
Поменять структуру БД пока возможности нет...

  Ответить  
 
 автор: Trianon   (10.05.2010 в 23:58)   письмо автору
 
   для: tolyan   (10.05.2010 в 23:54)
 

обновит конечно.
Но запрос INSERT ... ON DUPLICATE KEY UPDATE - идеально подходящий к базовой проблеме - применить уже не удастся.

>Ересь или нет - это другой вопрос.

Оно конечно, да... Но вот ереси я тут не хочу. И там тоже.

  Ответить  
 
 автор: tolyan   (10.05.2010 в 23:54)   письмо автору
 
   для: Trianon   (10.05.2010 в 23:50)
 

Ересь или нет - это другой вопрос.
Ксати, если условию будет соответствовать несколько записей, разве MySQL не обновит их все?

  Ответить  
 
 автор: Trianon   (10.05.2010 в 23:50)   письмо автору
 
   для: tolyan   (10.05.2010 в 23:46)
 

>А что тут "абы как"?
>Если запись, в которой поле_1=значение_1 и поле_2=значение_2 существует, то обновить. Если нет, то добавить.
>На мой взгляд всё чётко.

Если запись в которой поле поле_1=значение_1 и поле_2=значение_2 выбирается для целевого обновления, то (поле_1, поле_2) фактически является ключом. А ключ в определяющей таблице уникален по определению. Тем более, если запись собираются добавлять.

>Можно добавить к условию что-то наподобие LIMIT 1, если записей таких будет несколько.
А это уже ересь мерзкая.

  Ответить  
 
 автор: tolyan   (10.05.2010 в 23:46)   письмо автору
 
   для: Trianon   (10.05.2010 в 17:17)
 

А что тут "абы как"?
Если запись, в которой поле_1=значение_1 и поле_2=значение_2 существует, то обновить. Если нет, то добавить.
На мой взгляд всё чётко.
Можно добавить к условию что-то наподобие LIMIT 1, если записей таких будет несколько.
PS: Уникальный идентификатор у всех записей есть, но поиск по нему не производится.

  Ответить  
 
 автор: Trianon   (10.05.2010 в 17:17)   письмо автору
 
   для: tolyan   (10.05.2010 в 17:00)
 

SQL (как, впрочем, и любой другой алгоритмический инструмент) не решает задачи в стиле "хотя бы чего-нибудь" .
Задача должна быть определена точно, а не абы как.
Должно произойти что-то с хотя бы одним - определитесь, с каким именно одним.

  Ответить  
 
 автор: tolyan   (10.05.2010 в 17:00)   письмо автору
 
   для: Trianon   (10.05.2010 в 02:37)
 

Даже в этом случае он не будет уникальным. Может быть дублирующая запись. Важно, чтобы запрос заменил хотя бы одну.

  Ответить  
 
 автор: Trianon   (10.05.2010 в 02:37)   письмо автору
 
   для: tolyan   (09.05.2010 в 21:27)
 

можно добавить составной уникальный ключ - на двух полях.

  Ответить  
 
 автор: tolyan   (09.05.2010 в 21:27)   письмо автору
 
 

Здравствуйте.
Возможно ли как-нибудь сделать запрос такого типа:
Если запись существует, то UPDATE. Иначе - INSERT.
PS: Уникального ключа, на который можно полагаться в данном случае нет. Проверка существования записи проводится одновременно по двум неуникальным полям (т.е. существующей считаем запись, у которой первое и второе поле совпадает с той записью, которую мы собираемся добавить).
Спасибо.

  Ответить  

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования