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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: количество символов в поле
 
 автор: lilu   (23.07.2008 в 16:29)   письмо автору
 
 

Подскажите в чём ошибка:
надо из таблицы TABLE выбрать все строки у кот пароль содержит не более 10 символов.

SELECT * FROM `TABLE ` WHERE  length('pwd')<=10
 

   
 
 автор: Trianon   (23.07.2008 в 16:49)   письмо автору
 
   для: lilu   (23.07.2008 в 16:29)
 

Ошибка в кавычках. length('pwd') всегда равно трём.

SELECT * FROM `TABLE` WHERE  length(`pwd`)<=10 


PS. Интересно, что за пользователей Вы отделяете в результате?
PPS. И таки BinLaden прав. Пробел в имени таблицы явно лишний.

   
 
 автор: lilu   (23.07.2008 в 16:55)   письмо автору
 
   для: Trianon   (23.07.2008 в 16:49)
 

Кажется функция length() сюда не подходит вовсе. Т.к. pwd это название поля в таблице в кот. хранятся пароли а не сам пароль - а как же тогда....
Этот пример я привела для наглядности - проблемы убрать пробел нет... Проблема в том, какую функцию применить, кот будет содержать кол-во символов в поле pwd

   
 
 автор: BinLaden   (23.07.2008 в 17:07)   письмо автору
 
   для: lilu   (23.07.2008 в 16:55)
 

> length('pwd')
> length(`pwd`)

Сравните.

   
 
 автор: lilu   (23.07.2008 в 17:12)   письмо автору
 
   для: BinLaden   (23.07.2008 в 17:07)
 

Я всё понимаю, но если length('pwd') всегда равно трём - то мне эта функция не подходит - и пробел тут ни при чём, правильно?
Хорошо, можно ли добиться результата без функции length

   
 
 автор: Trianon   (23.07.2008 в 17:18)   письмо автору
 
   для: lilu   (23.07.2008 в 17:12)
 

Проблема в том, что Вы название pwd окружили апострофами. А надо было - обратными косыми кавычками. А функция вполне себе нормальная.
Просто pwd -или `pwd` в обратных косых кавычках  - это название таблицы. 
А  'pwd' в апострофах - это обычный текст

   
 
 автор: BinLaden   (23.07.2008 в 17:18)   письмо автору
 
   для: lilu   (23.07.2008 в 17:12)
 

Нет, Вы просто неудачно выбрали ограничители - нужно не ' (апостроф), а ` (обратная косая черта).

   
 
 автор: lilu   (23.07.2008 в 17:52)   письмо автору
 
   для: BinLaden   (23.07.2008 в 17:18)
 

действильно - а казалось бы :))) спасибо

Попутно возник ещё вопрос - а каким sql запросом можно выбрать все пароли кот состоят только из цифр

   
 
 автор: BinLaden   (23.07.2008 в 18:06)   письмо автору
 
   для: lilu   (23.07.2008 в 17:52)
 

SELECT * FROM `TABLE` WHERE `pwd` REGEXP '^[0-9]+$';

   
 
 автор: BinLaden   (23.07.2008 в 16:50)   письмо автору
 
   для: lilu   (23.07.2008 в 16:29)
 

У Вас реально таблица имеет имя с пробелом на конце?

   
Rambler's Top100
вверх

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