我有一個包含一個字符串,如柱:僅選擇列中的撇號內的數據。
Approved By Smith, John For 'Core Authoring Files'
我想我的選擇只返回
Core Authoring Files
有沒有辦法只能選擇是單引號裏面的數據?
我有一個包含一個字符串,如柱:僅選擇列中的撇號內的數據。
Approved By Smith, John For 'Core Authoring Files'
我想我的選擇只返回
Core Authoring Files
有沒有辦法只能選擇是單引號裏面的數據?
試試這個,但子字符串在不同的數據庫系統中實現稍有不同,所以您可能需要根據您使用的服務器進行一些修改。
select
substring(column, charindex("'", column, 0) as begin), charindex("'", column, begin + 1) - begin)) as thestring
from yourTable;
這種工作方式是使用CHARINDEX函數查找字符串中的第一個引號字符的位置,然後找到字符串中的第二個引號字符開始在字符的第一次報價後,再減去那些位置來獲取你想要提取的字符串的長度。這兩個數字被傳遞給子字符串函數以獲取子字符串(列,起始位置,長度)。
希望這有助於
編輯
我想花一秒鐘從允許轉義引號字符將被存儲在數據庫勸阻你。這是一個乞求SQL注入攻擊的情況。如果您不熟悉,請在沿着這條路走得太遠之前研究sql注入。
在Postgresql中,使用regexp_replace字符串運算符很簡單。
例如
SELECT * FROM (
SELECT
regexp_replace(title, E'.*\'\(.*\)\'.*', E'\\1') AS result
FROM
items) x
WHERE
result IS NOT null;
你正在使用什麼數據庫。更可能的是,您將不得不使用編程語言(例如PHP)來獲取內部字符串,但可能會有一個特定數據庫的自定義庫,可能會有所幫助,或者可能會將其作爲db函數執行 –