mysql 一个列里面存的是字符串,字符串里既有数字又有汉字,如何只根据数字排序
时间: 2024-04-14 10:30:15 浏览: 124
对于只根据数字进行排序,可以使用MySQL的内置函数`REGEXP_REPLACE()`来移除字符串中的非数字字符,然后再进行排序。以下是一个示例查询:
```sql
SELECT column_name
FROM table_name
ORDER BY CAST(REGEXP_REPLACE(column_name, '[^0-9]+', '') AS UNSIGNED);
```
这将根据列`column_name`中的数字进行升序排序。`REGEXP_REPLACE()`函数用于移除非数字字符,`CAST(... AS UNSIGNED)`用于将结果转换为无符号整数以进行排序。
请注意,这种方法假设您的数字不包含小数点或其他特殊字符。如果包含特殊字符,您可能需要调整正则表达式来适应您的数据。另外,请确保备份数据并在生产环境中进行测试。
阅读全文