所以,我有這個疑問:我不能修復這個看似簡單,投相關,PostgreSQL的錯誤
SELECT count(*) AS count FROM table1 INNER JOIN "some query"
WHERE "some more query"
OR (table.smowid NOT LIKE (58)) OR "rest of query"
對不起,我不清楚代碼,全面查詢是相當大的,但問題是在table.smowid NOT LIKE (58)
部分。
這是錯誤我得到:
ERROR: operator does not exist: integer !~~ integer
LINE 11: or ((table.smowid) NOT LIKE (58))
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
我遺憾的是,不知道很多關於石膏和類型,但爲什麼是DB時,它從整數去整數抱怨? 我試着說,(CAST (table.smowid) AS INTEGER) NOT LIKE (58)
,但沒有奏效,我也試過(table.smowid :: integer) NOT LIKE (58)
,但也沒有工作出於某種原因。
那麼,我該怎麼辦?感謝所有的幫助。
作爲文本的YUP鑄造似乎已經解決了這個問題,只是好奇,但什麼是不同之處:: TEXT和CAST AS TEXT? – zermy
我很肯定它只是語法上的糖而且做同樣的事情 –
'myval :: text','text myval'和'cast myval as text'是100%等價的在postgres中,後者是標準的SQL語法,'myval :: text'是我喜歡的樣式,因爲它最容易閱讀。 –