为什么MySQL以我不期望的方式匹配字符串和整数?

时间:2017-09-11 19:48:24

标签: mysql

我有一个mysql数据库,其中包含以下列:

    +-----+
    | vpn |
    +-----+
    | 11a |

当我使用查询时:

SELECT vpn FROM vpn_map  WHERE vpn=11;

它返回:

    +-----+
    | vpn |
    +-----+
    | 11a |

但如果我查询:

Select VPN from vpn_map where vpn=lla;

我明白了:

ERROR 1054 (42S22): Unknown column '11a' in 'where clause'

为什么以前的查询不匹配?如果我这样做,它将匹配:

Select VPN from vpn_map where vpn='lla';

但是vpn = '11'将无法匹配。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

11a不是整数,你在它们周围使用",否则会出错。

SELECT vpn FROM vpn_map WHERE vpn="lla";