webForumDet fria alternativet

[Derby/JavaDB] Alla strängar som börjar med...

Databaser & SQL

4 svar · 457 visningar · startad av erciz

Medlem sedan maj 20011 826 inlägg
Frågan#1

Jag använder databasen Apache Derby / JavaDB.

Jag försöker skriva en SQL-sats som returnerar alla object som börjar med namnet <input>.

<input> är den dynamiska variabeln ?.

Jag har försökt med:

SELECT * FROM store WHERE name LIKE ? || %

och

SELECT * FROM store WHERE name LIKE ?%

men får fel på %, skriver jag bara ? så får jag fram svar, men bara exakta träffar, inte börjar med...

Någon som har nåt tips?

Medlem sedan dec. 20025 483 inlägg
#2

...LIKE ? + '%'

Medlem sedan aug. 20039 340 inlägg
#3

Jag tror att || är mer "rätt" för att slå ihop strängar. Dock ska även procent-tecknet vara en del av strängen. Så LIKE ? || '%' annars LIKE ? + '%'
Peter, ditt exempel blir ju fel då han bara vill matcha strängar som börjar med det som ? innehåller. (Lägger du % på båda sidor så matchar du ? varsomhelst i strängarna som eftersöks.)

Medlem sedan dec. 20025 483 inlägg
#4

Ja, just det :) Jag tar bort det första %.

Medlem sedan maj 20011 826 inlägg
#5

nitro2k01 skrev:

LIKE ? || '%'

blev rätt.

nitro2k01 skrev:

LIKE ? + '%'

gav tyvärr fel, då + är en artimetisk operator.

Tack för hjälpen.

275 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
148 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)