Intereting Posts
Какое соединение мне нужно? Создание задания в Oracle с использованием DBMS_JOB Сэмплирование SQL-запросов Удалить дубликаты записей в SQL Server? Поддерживает ли JPA сопоставление с представлениями sql? Каковы нижние стороны использования основного / составного первичного ключа? Как создать параметризованный запрос или пользовательское экранирование в этой инструкции SQL на C #? SQLite SUM () между несколькими строками кросс-таблица с двумя (или более) строками Анализ XML с неизвестными пространствами имен в Oracle SQL Более эффективный способ добавления параметров в SqlCommand .NET Нужна помощь в обработке результатов запроса для обновления полей Обновить столбцы, если входные значения не равны нулю, в противном случае игнорируются и сохраняют существующие значения столбца в базе данных Как просмотреть набор записей в таблице доступа с помощью vba? PostgreSQL получает разницу во времени между отметками времени

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