2009-09-18 10 views
16

私は記述欄には「リンゴのDESC」と「オレンジ色のDESC」ですが、それは動作していないので、行を更新するには、次の文を渡すためにしようとしています。このデータSQLite Update文字列連結の構文ですか?

id , name , description 
1 , apple , '' 
2 , orange , '' 

を持つテーブルがあります。

文字列を連結する正しい構文は何ですか?

答えて

47

のSQLiteのstring concatenation operatorはない "+"

UPDATE TestTable SET description = 'desc of ' || name; 
+0

+は、文字列の連結のための標準的なSQL構文ではありません、 "||" です。 –

+8

文字列連結のための標準SQL構文はありますか?すべてのDBが別のものを使用しているようです。 MySQLはConcat()関数を使用し、SQL Liteは||を使用し、SQL Serverは+を使用します。間違いなく標準化すべきもの。 – Kibbee

+1

はい、標準のSQL構文があります。これは、[SQL-92標準]の「||」、「採用されている」(https://books.google.com/books?id=6jqZExL6UGcC&pg=PA106&dq=concatenation+infixed+operator&hl=ja&sa=X#v=onepage) ISO/IEC 9075:1992](https://www.google.com/search?sclient=psy-ab&biw=1920&bih=979&q=%22concatenation+operator%22+ISO%2FIEC+9075:1992+X3H2-92-154 +%22double + period%22)。 SQL ServerとMySQLが標準に準拠しないことを選択したことだけです。 MySQLは、['PIPES_AS_CONCAT'](http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_pipes_as_concat)を設定することによって、 –