提前道歉,我想问一个肯定很简单的问题。
我有一个MySQL(5.5)数据库,其中包括电话号码字段等内容。我正尝试创建一条语句来搜索该字段,去除任何空格。因此,搜索'0208'将返回'020 8','02 08','0 208',' 0208'等。
这是在Delphi XE2中,如果这有所区别。
'SELECT * FROM sales_ledger WHERE REPLACE(telephone, " ", "") LIKE "%' + SearchEdit.Text + '%"'
...给我一个错误...
WHERE 子句中的过滤器无效
...和...
'SELECT REPLACE(telephone, " ", "") FROM sales_ledger WHERE REPLACE(telephone, " ", "") LIKE "%' + SearchEdit.Text + '%"'
...给了我...
无效的字段名。通用SQL错误。未找到列。
...而且我确实需要返回所有字段。
请问能否提供一些帮助以更正语法。如果您需要更多信息,请不要犹豫,随时询问。非常感谢您的时间。
编辑:我遗漏了一个可能关键的信息。该表实际上是我通过ODBC访问的Sage数据库。由于我尝试的所有方法都没有起作用,这可能是根本问题。抱歉之前没有说。
SELECT * FROM sales_ledger WHERE telephone LIKE "%' + SearchEdit.Text + '%"
- 可以工作。SELECT * FROM sales_ledger WHERE REPLACE(telephone, " ", "") LIKE "%' + SearchEdit.Text + '%"
- 无法工作。 - Jon K.Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('SELECT * FROM sales_ledger WHERE REPLACE(telephone, " ", "") LIKE "%' + SearchEdit.Text + '%"'); Query1.Open;
- Jon K.