2009-09-18 13 views
16

J'ai une table avec ces donnéesSQLite Update Syntaxe pour la concaténation de chaînes?

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

Je suis en train de passer la déclaration suivante à mettre à jour la ligne de sorte que la colonne de description est « desc de la pomme » et « desc d'orange », mais il ne fonctionne pas.

Quelle est la syntaxe appropriée pour concaténer des chaînes?

Répondre

47

SQLite est de string concatenation operator "||", pas "+"

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

+ n'est pas la syntaxe SQL standard pour la concaténation de chaîne. –

+8

Existe-t-il une syntaxe SQL standard pour la concaténation de chaînes? Il semble que chaque DB utilise un différent. MySQL utilise la fonction Concat(), SQL Lite avec ||, SQL Server utilise +. Certainement quelque chose qui devrait être normalisé. – Kibbee

+1

Oui, il existe une syntaxe SQL standard. Il est '||', [adopté] (https://books.google.com/books?id=6jqZExL6UGcC&pg=PA106&dq=concatenation+infixed+operator&hl=fr&sa=X#v=onepage) dans la [norme SQL-92 ISO/CEI 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 + période% 22). C'est juste que SQL Server et MySQL ont choisi de ne pas se conformer à la norme. Bien que MySQL puisse être cajolé en définissant ['PIPES_AS_CONCAT'] (http://dev.mysql.com/doc/refman/5.7/fr/sql-mode.html#sqlmode_pipes_as_concat) –

Questions connexes