Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   MYSQL выборка округленного числа (https://forum.antichat.xyz/showthread.php?t=158765)

George767 23.11.2009 23:33

MYSQL выборка округленного числа
 
Предположим есть число 56. Из mysql нужно выбрать строку с числом 56, но в этом числе могут стоять цифры после запятой - например, 56.4368. Какой сделать запрос (WHERE xxx='xxx'), что бы выбиралось указанное число, если после запятой идут цифры, которых в запрашиваемом числе нет (узнать заранее числы после запятой нельзя)?

PS Оператор LIKE не подойдет, потому что он может вернуть число 35.64562. Целое число 56 должно быть в начале, перед запятой.

zEr0r 24.11.2009 04:39

мм если не ошибаюсь надо юзать LIKE но не как обычно юзают (LIKE '%56%'), а вот так:
LIKE '56%'

ChieFSS 24.11.2009 11:15

Цитата:

Сообщение от George767
Предположим есть число 56. Из mysql нужно выбрать строку с числом 56, но в этом числе могут стоять цифры после запятой - например, 56.4368. Какой сделать запрос (WHERE xxx='xxx'), что бы выбиралось указанное число, если после запятой идут цифры, которых в запрашиваемом числе нет (узнать заранее числы после запятой нельзя)?

PS Оператор LIKE не подойдет, потому что он может вернуть число 35.64562. Целое число 56 должно быть в начале, перед запятой.

SELECT .... WHERE xxx = ROUND('xxx')

ROUND() - округление числа.
Если надо 100% знать в какую сторону округлять, то TRUNCATE() - до меньшего, FLOOR() - до большего.

max_rebel 24.11.2009 15:43

сделай запрос к базе, занеси таблицу в массив, из массива вытащи значение где лежит 56.***, округли array['?'] до целого числа. и если целое число равно 56 то вот оно и есть

krypt3r 24.11.2009 16:04

Код:

RLIKE "[^0-9]+56\\.[0-9]+";
?

Gifts 26.11.2009 02:02

George767 ChieFSS в общем то ответил:

SELECT num, some_column FROM table WHERE round(num)=12

krypt3r 26.11.2009 09:36

Округление не поможет, если искомое число находится где-то внутри строки типа
Код:

Current progress is 56.4368%


Время: 04:05