[英]Using REPLACE() in MySQL SELECT
我提前道歉,問我肯定會證明這是一個非常簡單的問題。
我有一個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數據庫。 因為我嘗試的任何工作都可能是根本問題。 抱歉不早點說。
您的查詢似乎工作正常,請參閱演示
首先嘗試此查詢到您的DB客戶端
SELECT * FROM sales_ledger
WHERE REPLACE(telephone, " ", "") LIKE "%0208%"
編輯:
如果你查詢仍然無法正常工作。 一步一步的過程。
SELECT * FROM sales_ledger
) 試試這個 ::
SELECT
REPLACE(telephone,' ', '') as replacedColumn
FROM sales_ledger
WHERE REPLACE(telephone,' ', '') LIKE '%"+ SearchEdit.Text +"%'"
要么
Select temp1.*
from
(
SELECT
REPLACE(telephone,' ', '') as replacedColumn
FROM sales_ledger
) as temp1
WHERE temp1.replacedColumn LIKE '%"+SearchEdit.Text+"%'"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.