Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
MYSQL выборка округленного числа |

23.11.2009, 23:33
|
|
Участник форума
Регистрация: 10.01.2006
Сообщений: 193
Провел на форуме: 553876
Репутация:
81
|
|
MYSQL выборка округленного числа
Предположим есть число 56. Из mysql нужно выбрать строку с числом 56, но в этом числе могут стоять цифры после запятой - например, 56.4368. Какой сделать запрос (WHERE xxx='xxx'), что бы выбиралось указанное число, если после запятой идут цифры, которых в запрашиваемом числе нет (узнать заранее числы после запятой нельзя)?
PS Оператор LIKE не подойдет, потому что он может вернуть число 35.64562. Целое число 56 должно быть в начале, перед запятой.
|
|
|

24.11.2009, 04:39
|
|
Познающий
Регистрация: 17.02.2008
Сообщений: 63
Провел на форуме: 118377
Репутация:
83
|
|
мм если не ошибаюсь надо юзать LIKE но не как обычно юзают (LIKE '%56%'), а вот так:
LIKE '56%'
|
|
|

24.11.2009, 11:15
|
|
Познающий
Регистрация: 23.11.2006
Сообщений: 34
Провел на форуме: 156100
Репутация:
7
|
|
Сообщение от George767
Предположим есть число 56. Из mysql нужно выбрать строку с числом 56, но в этом числе могут стоять цифры после запятой - например, 56.4368. Какой сделать запрос (WHERE xxx='xxx'), что бы выбиралось указанное число, если после запятой идут цифры, которых в запрашиваемом числе нет (узнать заранее числы после запятой нельзя)?
PS Оператор LIKE не подойдет, потому что он может вернуть число 35.64562. Целое число 56 должно быть в начале, перед запятой.
SELECT .... WHERE xxx = ROUND('xxx')
ROUND() - округление числа.
Если надо 100% знать в какую сторону округлять, то TRUNCATE() - до меньшего, FLOOR() - до большего.
|
|
|

24.11.2009, 15:43
|
|
Постоянный
Регистрация: 18.10.2007
Сообщений: 461
Провел на форуме: 577061
Репутация:
66
|
|
сделай запрос к базе, занеси таблицу в массив, из массива вытащи значение где лежит 56.***, округли array['?'] до целого числа. и если целое число равно 56 то вот оно и есть
|
|
|

24.11.2009, 16:04
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Код:
RLIKE "[^0-9]+56\\.[0-9]+";
?
|
|
|

26.11.2009, 02:02
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
George767 ChieFSS в общем то ответил:
SELECT num, some_column FROM table WHERE round(num)=12
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
|
|
|

26.11.2009, 09:36
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Округление не поможет, если искомое число находится где-то внутри строки типа
Код:
Current progress is 56.4368%
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|