簡體   English   中英

在MySQL REGEXP查詢中轉義單引號

[英]escaping single quotes in a mysql REGEXP query

我試圖在mysql中使用正則表達式,並且除我在單詞中使用引號外,它都可以正常工作。

例如:

SELECT * FROM table WHERE REGEXP "^pagina's[^[:space:]]*$"

我嘗試了以下所有方法:

SELECT * FROM table WHERE REGEXP "^'.preg_quote("pagina's").'[^[:space:]]*$" 

SELECT * FROM table WHERE REGEXP "^'.addslashes("pagina's").'[^[:space:]]*$" 

SELECT * FROM table WHERE REGEXP "^'.mysql_escape_real_string("pagina's").'[^[:space:]]*$" 

沒運氣..

因為“ pagina's”一詞中的單引號('),所以不會給我任何結果。

我如何才能轉義所有引號,以便mysql將看到引號文字並匹配數據庫中的字段?

**編輯**

這是我的PHP代碼:

$word = "pagina's";
$ary[] = "LOWER(idx.sidx_word) REGEXP '^".preg_quote($word)."[^[:space:]]*$'";

您需要指定一個表和一個列名...,並且沒有正確地轉義引號。 嘗試這樣的事情:

SELECT *
FROM table
WHERE column REGEXP '^pagina''s[^[:space:]]*$';

您必須為正則表達式指定列名,並用斜杠將引號引起來:

SELECT *
FROM table
WHERE column REGEXP '^pagina\'s[^[:space:]]*$';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM