2009-09-18 21 views
16

Mam tabelę z tymi danymiSkładnia aktualizacji SQLite dla konkatenacji ciągów znaków?

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

Próbuję przekazać następujące oświadczenie zaktualizować wiersz więc kolumna opis jest „desc jabłko” i „desc pomarańczy”, ale to nie działa.

Jaka jest właściwa składnia do łączenia łańcuchów?

Odpowiedz

47

SQLite na string concatenation operator jest "||", a nie "+"

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

+ nie jest standardem SQL Składnia ciąg konkatenacji. –

+8

Czy istnieje standardowa składnia SQL dla łączenia ciągów? Wydaje się, że każdy DB używa innego. MySQL używa funkcji Concat(), SQL Lite używa ||, SQL Server używa +. Zdecydowanie coś, co powinno być standaryzowane. – Kibbee

+1

Tak, istnieje standardowa składnia SQL. To jest "||", [przyjęte] (https://books.google.com/books?id=6jqZExL6UGcC&pg=PA106&dq=concatenation+infixed+operator&hl=en&sa=X#v=onepage) w standardzie [SQL-92 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). Po prostu SQL Server i MySQL zdecydowały się nie spełniać tego standardu. Chociaż MySQL można wywołać przez ustawienie ['PIPES_AS_CONCAT'] (http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_pipes_as_concat) –

Powiązane problemy