我有这个问题:
SELECT * FROM students
WHERE name LIKE '%ka%' OR
tel LIKE '%12%' OR
address LIKE '%ka%';
但是tel
是整数类型的列,因此我无法在那里使用%abc%
运算符(尽管我需要这样做)
如何在此查询中转换tel
列?
答案 0 :(得分:3)
试试这个
SELECT * FROM students
WHERE name LIKE '%ka%' OR
CAST(tel as text) LIKE '%12%' OR
address LIKE '%ka%';
答案 1 :(得分:1)
首先将tel
转换为text
类型
cast(tel as text) LIKE '%12%' OR
如果您没有使用像int
int
类型,则应考虑更改列类型
对于像这样的查询,索引和其他数据库优化无效。
答案 2 :(得分:1)
试试这个:
SELECT * FROM students
WHERE name LIKE '%ka%' OR
CONVERT(VARCHAR, tel) LIKE '%12%' OR
address LIKE '%ka%';