SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.03.2009 21:33:35

xn
Участник
Зарегистрирован: 30.03.2009
Сообщений: 4

не работает SELECT

здравствуйте, не могу понять в чем проблема, описываю ситуацию:

у меня установлен vertrigoserv (http://vertrigo.sourceforge.net/?lang=ru) последней версии на локальном компьютере, компоненты:
Apache 2.0.63
PHP 5.2.6
MySQL 5.0.51b
SQLite 3.5.9
Smarty 2.6.19
PhpMyAdmin 2.11.7
ZendOptimizer 3.3.3
SQLiteManager 1.2.0

Я создал таблицу в БД (model), пытаюсь сделать из нее выборку:

SELECT * FROM model WHERE model = 'ASUS M530w'
результат запроса пустой, хотя в поле model точно есть модель ASUS M530w (в SELECT вставлял копированием), насколько я понял, проблема в том, что в названии модели есть ПРОБЕЛ

запрос:
SELECT * FROM model WHERE model = 'test-nokia'
работает, то есть находится искомая строка

В чем может быть проблема?

Неактивен

 

#2 30.03.2009 21:49:50

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: не работает SELECT

Если пробел есть именно в названии модели (не в SELECT), то его нужно дописывать в SELECT.
Или использовать что-то типа WHERE model LIKE 'ASUS%'

Неактивен

 

#3 30.03.2009 22:28:53

xn
Участник
Зарегистрирован: 30.03.2009
Сообщений: 4

Re: не работает SELECT

спасибо за ответ, запрос:
SELECT * FROM model WHERE model LIKE 'ASUS%M530w'
выдает единственную подходящую строку - то что нужно, но это не совсем удобно.

То есть у меня есть таблица, у которой в графе model указано, например:
ASUS M530w
Sony-Ericsson W380i
и т.д., то есть названия с пробелом

и есть текстовые файлы с информацией, в которых есть тоже название модели (ASUS M530w, Sony-Ericsson W380i), то есть название ТАКОЕ ЖЕ как в базе записано

Далее я хочу инфу из файлов записать в БД. Это я планировал делать таким запросом:
UPDATE model SET intro = 'новая информация из файла' WHERE model='ASUS M530w' - и этот запрос не работает и мне не понятно почему, ведь запись в БД в model (ASUS M530w) в точности совпадает с WHERE model='ASUS M530w', но обновления не происходит

с помощью LIKE получилось:
UPDATE model SET intro = 'новая информация из файла' WHERE model LIKE 'ASUS M530w'

И еще я не понял вашу фразу "Если пробел есть именно в названии модели (не в SELECT), то его нужно дописывать в SELECT.". Я в model = 'ASUS M530w' пишу В ТОЧНОСТИ то, что есть в базе.

А вообще спасибо огромное, вопрос можно считать решенным

Неактивен

 

#4 30.03.2009 22:42:50

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: не работает SELECT

Насколько я понял, проблема в нескольких пробелах посередине. Если количество пробелов
совпадает - должно проходить нормально. Запросы Вы пишете правильные.

Неактивен

 

#5 31.03.2009 01:40:02

xn
Участник
Зарегистрирован: 30.03.2009
Сообщений: 4

Re: не работает SELECT

как выяснилось там (в базе) вообще посредине не пробел. Но выглядит как пробел и занимает одну печатную позицию, так сказать. Для меня пока загадка что это )

Неактивен

 

#6 31.03.2009 02:19:18

xn
Участник
Зарегистрирован: 30.03.2009
Сообщений: 4

Re: не работает SELECT

Может кому-то пригодится в будующем, я просто заменил непонятный символ, похожий на пробел на сам пробел таким вот запросом: UPDATE model SET model = REPLACE(model, ' 1', ' 2'), 1 и 2 надо стереть, 1 - это старый непонятный заменяемый символ, 2 - новый, на который заменяем

paulus - еще раз большое спасибо за помощь!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson