mysql - 避免在 mysql 选择查询中选择字母表

标签 mysql regex

我正在我的 PHP 页面上尝试 mysql 查询,但遇到了麻烦。

$sql = 'SELECT calldate, clid, duration FROM cdr';

显示以下值

Date:2014-06-14 19:43:18
CLI: "Name Surname" <5001>
Duration: 67

Date:2014-06-14 19:46:46
CLI: "Name Surname" <5001>
Duration: 43

Date:2014-06-15 12:52:56
CLI: 440012345678
Duration: 9

Date:2014-06-15 13:06:42
CLI: "440012345678" <440012345678>
Duration: 88 

$sql = 'SELECT calldate, clid, duration FROM cdr WHERE clid REGEXP "^[0-9]+$"'; 

只显示

Date:2014-06-15 12:52:56
CLI: 440012345678
Duration: 9 

我想要匹配以下格式的任何结果 "440012345678"<440012345678> 只是格式,而不是数字。

我应该在查询中添加什么?任何帮助将不胜感激,我对 MYSQL 了解不多

最佳答案

您正在寻找的 SQL 是:

SELECT calldate, clid, duration FROM cdr 
WHERE clid REGEXP "^\"[:alnum:]+\"[:blank:]<[:alnum:]+>$" 

除了简单的“CLI:440012345678”之外,这将匹配以上所有内容。

关于mysql - 避免在 mysql 选择查询中选择字母表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24899497/

相关文章:

java - 在java正则表达式中验证价格

regex - 从文本中捕获两位数字

MySQL Week 函数意外结果

php - ?使用表中的 COUNT 和具有相关数据的另一个表中的 SUM

php - 除了 Php/Mysql 中的文件外,所有输入字段都在数据库中上传了吗?

ruby-on-rails - Rails 使用正则表达式验证格式

mysqld.service 失败,因为超过了超时

mysql - 插入临时表mysql

java正则表达式保持处理但没有结果被抛出

Python正则表达式查找分隔符内的字符