PostgreSQL(9.5)データベースにテーブルContent
があり、カラムにはtitle
が含まれています。 title
列はhstore
です。 title
は別の言語に翻訳されているため、hstore
です。たとえば:どのhstore値から行を選択するには?
example=# SELECT * FROM contents;
id | title | content | created_at | updated_at
----+---------------------------------------------+------------------------------------------------+----------------------------+----------------------------
1 | "de"=>"Beispielseite", "en"=>"Example page" | "de"=>"Beispielinhalt", "en"=>"Example conten" | 2016-07-17 09:20:23.159248 | 2016-07-17 09:20:23.159248
(1 row)
私の質問は、私はtitle
がExample page
が含まれているcontent
を選択することができる方法、ありますか?
SELECT * FROM contents WHERE title = 'Example page';
このクエリは残念ながら機能しません。
あなたは、where句SELECT * FROM contents WHERE title like '%Example page%';
でのように使用する必要があります
example=# SELECT * FROM contents WHERE title = 'Example page';
ERROR: Syntax error near 'p' at position 8
LINE 1: SELECT * FROM contents WHERE title = 'Example page';
'title'は' hstore'列です。この配列には
any
を使って値をマッチングすることができます。あなたは 'hstore'に' LIKE'を使うことはできません –うん、うまくいきません。 – Robin
varcharデータ型にキャストできますか? –