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

时间:2014-07-22 23:28:38

标签: 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 

我希望任何符合以下格式的结果&#34; 440012345678&#34; &LT; 440012345678&GT;只是格式,而不是数字。

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

1 个答案:

答案 0 :(得分:1)

您正在寻找的SQL将是:

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

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