2017-09-21 15 views
0

记录我如何SELECT与该value列包含数字字母,但不只是行号的所有记录?MySQL的REGEXP的字母和数字,但没有只数

比方说,我有以下MySQL表:

+----+-------+ 
| id | value | 
+----+-------+ 
| 1 | a1 | 
+----+-------+ 
| 2 | aa | 
+----+-------+ 
| 3 | 22 | 
+----+-------+ 
| 4 | 3t | 
+----+-------+ 

想要的ID返回的行会是1,2和4;不是3,因为它只包含数字。

回答

0

这没有任何正则表达式的伎俩。

SELECT * FROM table WHERE (value/1)='NULL'; 
+1

号''NULL'',当为数字处理,为 '0'。 –

0

使用REGEXP

SELECT * FROM [table] WHERE [value] REGEXP '[A-Za-z]' AND [value] IS NOT NULL 
+0

啊,我想我看过的例子是在正则表达式中抛出额外的东西。我尝试过这一点,它在技术上是有效的,虽然我在这个古怪的表格中有一些记录,它们的值只是'0',这与我的版本相比没有选择。所以技术上主观的是某人需要的东西,他们有选择! :-) – John

1

value/1技巧有问题 - 它只是着眼于数字在value开始。

我想你需要

WHERE `value` REGEXP '[[:alpha:]]' 
    AND `value` REGEXP '[[:digit:]]'