Intereting Posts
Что такое SELF JOIN и когда вы его используете? Поиск виртуальных атрибутов Rails или комбинированный поиск столбцов sql Полиморфизм в таблицах базы данных SQL? Обратная связь Django с select_related Обновление MySQL (слишком долгое время) Получение количества полей в базе данных с помощью SQL-запроса? Как найти «пробел» в работе счетчика с SQL? Как я могу увидеть SQL, который будет сгенерирован заданным запросом ActiveRecord в Ruby on Rails Сложная группировка в SQL-запросе передача пустого поля в качестве параметра в jasper ireport Удалить обратные дубликаты из SQL-запроса Как принудительно применять только один набор полей для не-NULL исключительно среди множества (более 2) наборов? Выбор отдельной даты в день только из даты и времени (ГГГГ-ММ-ДД ЧЧ: ММ: СС) в MySQL Entity Framework От одного к одному свойство навигации не загружается Использование инструкции SELECT в предложении WHERE

Mysql: Как получить все строки, которые имеют более определенного десятичного знака после точки

У меня есть таблица, содержащая значения float.

Таблица

+ id | value | +--------|---------| + 1 | 19.22 | + 2 | 32.333 | + 3 | 1.2332 | + 4 | 0.22334 | + 5 | 4.55 | 

Я хочу извлечь каждую строку, содержащую более трех десятичных знаков после точки.

В результате я бы ожидал:

 + id | value | +--------|---------| + 2 | 32.333 | + 3 | 1.2332 | + 4 | 0.22334 | 

Поместите столбец value в качестве varchar и используйте сравнение строк.

Это регулярное выражение (MySQL 5.0+) работало для меня на основе данных, которые вы предоставили:

 SELECT t.* FROM YOUR_TABLE t WHERE t.`value` REGEXP '[0-9]+.[0-9][0-9][0-9]+' 

Справка:

Это сработало для меня

 SELECT * FROM `table` WHERE LENGTH(SUBSTR(`value`,INSTR(`value`,"."))) >3 

Подсчет десятичного числа .01 равен 3, .011 – 4

Это сработало для меня:

 SELECT * FROM table WHERE column <> ROUND (column,2) 

или:

 SELECT * FROM table WHERE column <> CAST (column AS DECIMAL(36,2)) 

Попробуй это:

 select value, LEN(value) - CHARINDEX('.', value) as DecimalCount from Table where LEN(value) - CHARINDEX('.', value) > 2 

ПРИМЕЧАНИЕ. Я не использую mySQL, у меня MSSQL. сообщите мне, если это сработает для вас – просто заметили, что вы попросили решение mySQL.

ОБНОВЛЕНИЕ: Неплохо для ответа на неправильную платформу. Немного исследований дал мне это для mySQL:

 select * from Table where LENGTH(SUBSTRING_INDEX(value, '.', -1)) > 2