与领先的零
问题描述:
我有一个简单的查询选择查询......但有两个nocompatible表与领先的零
SELECT
a.name
b.occupation
FROM table1 a
LEFT JOIN table2 b
ON a.ID = B.ID
问题是Table 1和Table有数据
ID ID
HV HV
8 008
13 013
A5 A5
请帮
答
你可以通过在整数上下文中评估它们将这些值转换为其整数值:
SELECT
a.name
b.occupation
FROM table1 a
LEFT JOIN table2 b
ON a.ID = B.ID+0
但是这可能会破坏使用索引进行连接的任何机会。要进行优化,您必须在两个表中以兼容格式存储值。
+0
这不起作用,像'HV''和''A5'这样的条目将变成'0'。看到这里:http://www.sqlfiddle.com/#!2/a9a8f/1/0 – fancyPants 2013-03-21 15:04:58
+0
@tombom,是的,你是对的,我的解决方案是不够的。 – 2013-03-21 15:06:31
+1,这是比我的更好的解决方案,但它也破坏了索引。 – 2013-03-21 15:05:56
是的,但我不知道如何保留索引,因为您必须以某种方式修改列以进行直接比较:•是否可以通过某种方式实现? – 2013-03-21 15:10:31
此解决方案明确起作用,但两个表都是5K行+ – user2151863 2013-03-21 15:14:29