2014-05-07 45 views
1

内施放的专栏中,我有这个疑问:如何选择查询

SELECT * FROM students 
WHERE name LIKE '%ka%' OR 
tel LIKE '%12%' OR 
address LIKE '%ka%'; 

tel是整数类型列,因此,我不能使用%abc%运营商那里(虽然我需要那样做)

如何在此查询中投下tel列?

+0

是你能得到这个工作?还有其他问题吗? – paqogomez

回答

3

试试这个

SELECT * FROM students 
WHERE name LIKE '%ka%' OR 
CAST(tel as text) LIKE '%12%' OR 
address LIKE '%ka%'; 
+0

'列varchar不存在' – Saphire

+0

好吧,你的主角让我找到正确的答案: 'CAST(tel as text)like ...' – Saphire

+0

好吧,那是因为你没有告诉数据库。尝试新的编辑 – fnightangel

1

转换的teltext型第一

cast(tel as text) LIKE '%12%' OR 

你应该考虑改变你的列类型,如果你使用的不是int型像int

索引和其他数据库优化对于像这样的查询无效。

1

试试这个:

SELECT * FROM students 
WHERE name LIKE '%ka%' OR 
CONVERT(VARCHAR, tel) LIKE '%12%' OR 
address LIKE '%ka%';