C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
SQL, Подзапросы
** Andrey
Отправлено: 22.11.2004, 21:19


Не зарегистрирован







Здравствуйте господа!
Знать опять не работает следующее вычитал из 2-3 книжек по SQL

UPDATE star4 SET model='Z/20' WHERE num IN (SELECT num FROM star4 WHERE model LIKE 'z-20')

Вложенные подзапросы не работают матюгаются все и Builder+MySQL и SQL Explorer
А если эти запросы писать по отдельности та все работает.
Подскажите пЫжалуйста.

По следующее: Builder 6.0, MySQL 3.23.38 через MyODBC-standard-3.51.9-win
AVC
Отправлено: 23.11.2004, 09:00


Ветеран

Группа: Модератор
Сообщений: 1583



Насчет подзапросов на MySQL не знаю, посмотрите документацию. А конкретно по данному примеру — почему бы не написать так:
UPDATE star4 SET model='Z/20' WHERE model LIKE '%z-20%'
Не вижу смысла в подзапросе.

PS. Документацию смотрите на MySQL, все остальное либо инструмент, либо для связи и в выполнении запросов не участвуют.
Valdemar
Отправлено: 23.11.2004, 09:10


Мастер участка

Группа: Участник
Сообщений: 433



Если вы хотите заменить все значения поля model, равные 'z-20' на 'Z/20', то можно сделать проще:
UPDATE star4 SET model='Z/20' WHERE model= 'z-20'
или, если старое значение поля model должно содержать в начале текст 'z-20'
UPDATE star4 SET model='Z/20' WHERE model LIKE 'z-20%'
Возможно вы просто опечатались и пропустили в выражении LIKE 'z-20' знак %, т.к. LIKE 'z-20' эквивалентно model= 'z-20'.

Вернуться в Работа с базами данных в C++Builder