我想根據列值查找記錄。Postgresql從哪裏選擇
我知道如何使用select from where命令來執行此操作。
但是,我正面臨一個問題,我想查找值的列的值。
問題是該值有一個/在它。
因此,這裏的命令:
SELECT COLA FROM TABLENAME WHERE COLB = cotton/candy;
這是給我的一個問題,因爲列「棉花」不存在。
任何幫助將不勝感激。
提前感謝和問候,
我想根據列值查找記錄。Postgresql從哪裏選擇
我知道如何使用select from where命令來執行此操作。
但是,我正面臨一個問題,我想查找值的列的值。
問題是該值有一個/在它。
因此,這裏的命令:
SELECT COLA FROM TABLENAME WHERE COLB = cotton/candy;
這是給我的一個問題,因爲列「棉花」不存在。
任何幫助將不勝感激。
提前感謝和問候,
如果你用引號括這應該工作的價值,因爲它會尋找一個確切的字符串匹配:
SELECT COLA FROM TABLENAME WHERE COLB = 'cotton/candy';
謝謝你的作品。 – nader
價值的內容不應該的問題在所有。
您的語法無論是否帶有/
都無效。
COLB = cotton/candy;
就是錯了,因爲
COLB = cotton;
,因爲在兩種情況下你用'quotes for literals'
。
雖然有一個更廣泛的問題。說你寫:
COLB = '$1'
其中$1
是一些程序變量替換。然後有人發送價值');DROP TABLE COLA;--
。哎呦!他們在你的數據庫上運行了一個命令並丟棄了你的表。這稱爲SQL injection並且爲了避免它,您應該確保在您的查詢中使用用戶提供或插值的全部綁定參數(「參數化語句」,「準備語句」)。
您是否有Web企業應用程序的安全主題鏈接。 – nader
https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS –