如何从mysql中只选择数字数据?
mysql 是否有像 is_num() 这样的函数可以让我确定数据是否是数字?
Does mysql have a function like is_num() which can allow me determine the data is numeric or not?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可能想要创建一个用户定义的函数,将值与正则表达式相匹配:
来源:MySQL 论坛 :: Microsoft SQL Server :: MySQL 中的 IsNumeric() 子句?
真实测试:
虚假测试:
You may want to create a user defined function that matches the value against a regular expression:
Source: MySQL Forums :: Microsoft SQL Server :: IsNumeric() clause in MySQL?
Truthy Tests:
Falsy Tests:
就我而言,我只需要检查数据是否 >= 0 而不是 char,也许这对您也有用:
In my case I just needed to check if data was >= 0 and not char, perhaps this is useful for you also:
如果您只想从字符串中选择数字字符,请尝试使用此方法:
通过调用 NumericOnly 函数来使用它,如下所示:
返回:“12”
返回:“987”
(顺便说一句,我写了一个 在这里发布有关此内容)
If you want to select only the numeric characters from your string, try using this:
Use it by calling the NumericOnly function like this:
Returns: "12"
Returns: "987"
(BTW, I wrote a post about this here)
只需使用 DECIMAL 或 SIGNED/UNSIGNED 将数据显式转换为数字,然后使用 STRCMP 与原始数据值进行比较。如果 STRCMP 返回 0(相等),那么您就知道您有一个数字。否则就不是了。
下面的示例假设数据为数字时没有小数位,因此我们可以将其转换为 DECIMAL。
此查询选择 is_it_a_number 字段中包含数字数据的所有行。
Just convert your data explicitly to a number using DECIMAL or SIGNED/UNSIGNED, and use STRCMP to compare to the original data value. If STRCMP returns 0 (equality) then you know you have a number. Otherwise, it's not.
Here's an example that assumes there are no decimal places in your data when it's numeric, so we can cast as DECIMAL.
This query select all the rows that contain numeric data in the is_it_a_number field.
IsNumeric 从 SQL 到 MYSQL 的简单语法是
sql:
Mysql
The simple syntax for IsNumeric from SQL to MYSQL is
sql:
Mysql
速度快千倍。
Thousand times faster.