2009-09-18 6 views
16

Ho una tabella con questi datiSintassi di aggiornamento SQLite per la concatenazione di stringhe?

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

Sto cercando di passare la seguente dichiarazione per aggiornare la riga in modo che la colonna di descrizione è 'disc di mela' e 'desc di arancione', ma non funziona.

Qual è la sintassi corretta per concatenare le stringhe?

risposta

47

SQLite di string concatenation operator è "||", non "+"

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

+ non è la sintassi SQL standard per la concatenazione di stringhe. –

+8

Esiste una sintassi SQL standard per la concatenazione delle stringhe? Sembra che ogni DB ne usi uno diverso. MySQL utilizza la funzione Concat(), SQL Lite usando ||, SQL Server utilizza +. Sicuramente qualcosa che dovrebbe essere standardizzato. – Kibbee

+1

Sì, esiste una sintassi SQL standard. È '||', [adottato] (https://books.google.com/books?id=6jqZExL6UGcC&pg=PA106&dq=concatenation+infixed+operator&hl=en&sa=X#v=onepage) nello [standard 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 + periodo% 22). È solo che SQL Server e MySQL hanno scelto di non rispettare lo standard. Sebbene MySQL possa essere blandito impostando ['PIPES_AS_CONCAT'] (http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_pipes_as_concat) –