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

Форум MySQL

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

 

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

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

тема: Фильтр по записям вида "Числа1^Числа2^Числа3"
 
 автор: newii   (20.09.2008 в 12:23)   письмо автору
 
 

Приветствую, уважаемые. Нужна ваша помощь.

В БД (mysql 4) есть поле с записями вида "Числа1^Числа2^Числа3".
Например:
4^0^0
^^1
0^4^

Нужно сделать запрос в базу:
Выводить записи в которых Числа1>3 и Числа2<5.

Какие будут мысли?

  Ответить  
 
 автор: Trianon   (20.09.2008 в 12:47)   письмо автору
 
   для: newii   (20.09.2008 в 12:23)
 

>Какие будут мысли?
Мысль будет одна. Изменить структуру БД.
Так чтобы числа хранились в виде чисел.

  Ответить  
 
 автор: newii   (20.09.2008 в 13:12)   письмо автору
 
   для: Trianon   (20.09.2008 в 12:47)
 

Я бы с удовольствием, но, к сожалению не могу.

  Ответить  
 
 автор: Mehelson   (20.09.2008 в 13:46)   письмо автору
 
   для: newii   (20.09.2008 в 13:12)
 

Это примерно вот такая галиматья :) будет:
SELECT * FROM `test` WHERE CAST(SUBSTRING(`name`, LOCATE('^', `name`)+1, 1) AS SIGNED) > 3 
AND CAST(SUBSTRING(`name`, LOCATE('^', `name`, LOCATE('^', `name`)+1)+1, 1) AS SIGNED) < 5

и то если 'число' односимвольное - 1

  Ответить  
 
 автор: Trianon   (20.09.2008 в 15:07)   письмо автору
 
   для: Mehelson   (20.09.2008 в 13:46)
 

наверняка, можно написать и полный разбор. Запрос будет на полстраницы и работать будет полчаса. Зачем?

  Ответить  
 
 автор: Mehelson   (20.09.2008 в 15:35)   письмо автору
 
   для: Trianon   (20.09.2008 в 15:07)
 

Абсолютно незачем!
Интересно стало :)

  Ответить  
 
 автор: newii   (20.09.2008 в 16:17)   письмо автору
 
   для: Mehelson   (20.09.2008 в 15:35)
 

Спасибо за наводку, получились такие конструкции:


Число1: 
CAST(SUBSTRING(`free_time`, 1, LOCATE('^', `free_time`, 1)-1) AS SIGNED) 

Число 2:
CAST(SUBSTRING(`free_time`,   LOCATE('^', `free_time`, 1)+1,     LOCATE('^', `free_time`, LOCATE('^', `free_time`, 1)+1)-1-LOCATE('^', `free_time`, 1)) AS SIGNED)

Число 3:
CAST(SUBSTRING(`free_time`, LOCATE('^', `free_time`, LOCATE('^', `free_time`, 1)+1)+1, LENGTH(`free_time`)-LOCATE('^', `free_time`, LOCATE('^', `free_time`, 1)+1)) AS SIGNED)

  Ответить  
Rambler's Top100
вверх

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