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

Форум MySQL

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

 

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

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

тема: Как выбрать нужную строку?
 
 автор: sanchescom   (23.11.2009 в 10:17)   письмо автору
 
 

Здравствуйте!
У меня в базе имеется таблица, в ней следующее поле -> ID_SPECZ, оно в себе хранить строчку чисел 1 12 34 разделенное пробелами. Каким образом мне выбрать из базы только например 1 или 34?

  Ответить  
 
 автор: Valick   (23.11.2009 в 10:33)   письмо автору
 
   для: sanchescom   (23.11.2009 в 10:17)
 

т.е. у Вас поиск по полю ID_SPECZ?
Если честно, то для хранения нескольких значений в одном поле нужны достаточно веские основания и уж точно от поиска по такому полю нужно отказаться.
Я бы посоветовал изменить базу.

  Ответить  
 
 автор: sanchescom   (23.11.2009 в 14:41)   письмо автору
 
   для: Valick   (23.11.2009 в 10:33)
 

Изначально было по другому, все хранилось в отдельной табличке,но столкнулся с некими трудностями, не буду объяснять какими уже не помню). Переделал...
Там поиск не только по этому полю..ну в общем сейчас уже поздно что-либо менять. Надо как-то этот способ реализовать. Т.е. совпадения LIKE'ом он ищет. Нет ли функции в mysql при помощи которой можно искать в строке?

  Ответить  
 
 автор: Trianon   (23.11.2009 в 15:02)   письмо автору
 
   для: sanchescom   (23.11.2009 в 14:41)
 

переделывайте назад.
сумели испортить - найдите силы исправить.

  Ответить  
 
 автор: Valick   (23.11.2009 в 15:05)   письмо автору
 
   для: sanchescom   (23.11.2009 в 14:41)
 

все хранилось в отдельной табличке,но столкнулся с некими трудностями
не факт что было правильно, поэтому и были трудности.
но то что неправильно сейчас - это факт, оттого и трудности не перестают возникать :)

  Ответить  
 
 автор: sanchescom   (23.11.2009 в 16:22)   письмо автору
 
   для: Valick   (23.11.2009 в 15:05)
 

Ну может кто знает способ или решение, сейчас переделывать никак!!! Что еще можно попробовать?

  Ответить  
 
 автор: а-я   (24.11.2009 в 01:13)   письмо автору
 
   для: sanchescom   (23.11.2009 в 10:17)
 

может так получится:


SELECT * FROM `tbl` WHERE CONCAT(`ID_SPECZ`, ' ') REGEXP '(1|34) '

  Ответить  
 
 автор: sanchescom   (24.11.2009 в 11:09)   письмо автору
 
   для: а-я   (24.11.2009 в 01:13)
 

Подскажите пожалуйста, а зачем тут конкатенацию делать или я плохо понимаю возможности данной функции?!=)

  Ответить  
 
 автор: а-я   (24.11.2009 в 12:09)   письмо автору
 
   для: sanchescom   (24.11.2009 в 11:09)
 

у Вас строка "1 2 3 4", а регулярка REGEXP '(1|34) ' - после числа обязат пробел

надо пробел в конце, чтоб регулярка сработала и на послед. число

может и лучше есть способ.. я только до этого допер

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

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