我提前道歉,问我肯定会证明这是一个非常简单的问题.
我有一个MySQL(5.5)数据库,其中包括一个电话号码字段.我正在尝试创建一个将搜索该字段的语句,删除任何空格.因此,搜索'0208'将返回'020 8','02 08','0 208','0208'等.
这是在Delphi XE2中,如果有所作为.
'SELECT * FROM sales_ledger WHERE REPLACE(telephone, " ", "") LIKE "%' + SearchEdit.Text + '%"'
Run Code Online (Sandbox Code Playgroud)
......给我一个错误......
WHERE子句中的过滤器无效
...和...
'SELECT REPLACE(telephone, " ", "") FROM sales_ledger WHERE REPLACE(telephone, " ", "") LIKE "%' + SearchEdit.Text + '%"'
Run Code Online (Sandbox Code Playgroud)
...给我...
字段名称无效.一般SQL错误.未找到列.
......而且我确实需要所有返回的领域.
我可以请求一些帮助来纠正语法.如果您需要更多信息,请不要犹豫.非常感谢你花时间陪伴.
编辑:我错过了一条可能很重要的信息.该表实际上是一个我通过ODBC访问的Sage数据库.因为我尝试的任何工作都可能是根本问题.抱歉不早点说.
您的查询似乎工作正常,请参阅演示
首先尝试此查询到您的DB客户端
SELECT * FROM sales_ledger
WHERE REPLACE(telephone, " ", "") LIKE "%0208%"
Run Code Online (Sandbox Code Playgroud)
编辑:
如果你查询仍然无法正常工作.一步一步的过程.
SELECT * FROM sales_ledger)尝试这个 ::
SELECT
REPLACE(telephone,' ', '') as replacedColumn
FROM sales_ledger
WHERE REPLACE(telephone,' ', '') LIKE '%"+ SearchEdit.Text +"%'"
Run Code Online (Sandbox Code Playgroud)
或者
Select temp1.*
from
(
SELECT
REPLACE(telephone,' ', '') as replacedColumn
FROM sales_ledger
) as temp1
WHERE temp1.replacedColumn LIKE '%"+SearchEdit.Text+"%'"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37270 次 |
| 最近记录: |