Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Сравнение данных в MySQL


Автор: Shark 27.3.2010, 18:05
есть таблица test, в не 3 столбца

Код

id      |      test         | time

1       |    wee          | 1269748947, 1301284919, 1332907383, 1364443403
2       |     see          |  1301284919


так вот и вопрос:

как сделать выборку из БД по столбцу time?
т.е. если в БД идет запрос с данными : 1269748947, то должно вывести wee... а если запрос идет с данными: 1301284919, то должно вывести wee, see

думаю понятно объяснил..
помогите с sql запросом.

Автор: sgrey 27.3.2010, 18:19
а что, в time в одной ячейке находятся все эти данные???
Код

1269748947, 1301284919, 1332907383, 1364443403
 какой типа данных там?

Автор: bars80080 27.3.2010, 18:22
я так понимаю, что в time - текстовое поле? большой совет - пока не поздно переделай базу. числовые значения, по которым планируется поиск должны сидеть в числовых полях по одному на поле


а иначе:

Код

SELECT * FROM `table` WHERE `time` LIKE "%1269748947%"


что очень тормознуто

Автор: Shark 27.3.2010, 19:29
bars80080, да, ты прав, там текстовое поле...
а как тогда можно вывести данные по одному и тому же числовому значению, но так, чтоб в таблице не повторялись эти значения под каждым id'ом ?

Код

id      |      test         | time
1       |    wee          | 1269748947, 1301284919, 1332907383, 1364443403
2       |     see          | 1301284919
3       |     see          | 1301284919
4       |     wee         | 1269748947
5       |     wee         | 1269748947


чтоб эти wee и see не повторялись под id=1,id=4, id=5 (wee)..... id=2, id=3 - мне это не нужно,


что касается решения... про LIKE я вспомнил через 5 минут после того, как оставил пост тут

Автор: BobiKK 27.3.2010, 20:24
Если я правильно понял, то вам прежде всего требуется привести структуру к нормальной форме (не помню, как это называется точно, то ли 2я то ли 3я)
Код

Таблица 1:
|id|    |test|
1  |     wee
2  |     see

 Таблица 2:
|id|    |id_table1|    |time|
1         1                  1269748947
2         1                  1301284919
3         1                  1332907383
4         1                  1364443403
5         2                  1301284919

Автор: bars80080 27.3.2010, 22:12
да, как Бобик прописал. во второй таблице все поля int. по ним поиск будет идти быстро

запрос соответственно:
Код

SELECT * FROM `table2` WHERE `time`=1269748947

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)