2016-05-12 10 views
0

mit Ich versuche Zeilen zu aktualisieren mehr LIKE Klauseln mit folgendem Befehl:SQLite nicht mehr Zeilen aktualisieren LIKE

UPDATE Item SET CategoryID = '6' WHERE 
    Title LIKE '%ASP%' AND 
    Title LIKE '%C#%' AND 
    Title LIKE '%VB%' AND 
    Title LIKE '%iPhone%' AND 
    Title LIKE '%CSS%' AND 
    Title LIKE '%HTML%' AND 
    Title LIKE '%PHP%' AND 
    Title LIKE '%Oracle%'; 

Wenn der Befehl ausgeführt wird, SQLite sagt mir, dass die Abfrage erfolgreich ausgeführt, aber wenn Überprüfung der Tabelle keine Zeilen wurden aktualisiert.

Wenn habe ich versucht, den gleichen Befehl mit nur einem like Klausel

UPDATE Item SET CategoryID = '6' WHERE 
    Title LIKE '%ASP%'; 

die relevanten perfekt aktualisierten Zeilen. So bin ich fest, wie die Zeilen mit mehreren LIKE-Klauseln aktualisiert werden. Bitte Hilfe.

+4

Vielleicht sollten Sie OR statt AND verwenden ... – jarlh

Antwort

2
UPDATE Item SET CategoryID = '6' WHERE 
Title LIKE '%ASP%' OR 
Title LIKE '%C#%' OR 
Title LIKE '%VB%' OR 
Title LIKE '%iPhone%' OR 
Title LIKE '%CSS%' OR 
Title LIKE '%HTML%' OR 
Title LIKE '%PHP%' OR 
Title LIKE '%Oracle%'; 
0

Ihre Anfrage wird für die Zeile suchen alle derer enthalten %ASP%, %C#% ... etc. Ich bin auf der Grundlage Ihrer zweiten Abfrage vorausgesetzt, Sie das Update auf Basis tun wollen auf alle dieser Begriffe. Das ist or, nicht and

UPDATE Item 
SET CategoryID = '6' 
WHERE 
    Title LIKE '%ASP%' 
    OR Title LIKE '%C#%' 
    OR Title LIKE '%VB%' 
    OR Title LIKE '%iPhone%' 
    OR Title LIKE '%CSS%' 
    OR Title LIKE '%HTML%' 
    OR Title LIKE '%PHP%' 
    OR Title LIKE '%Oracle%'; 

Probe:

  1. die braune asp über die C# sprang.
  2. Die braune asp sprang

Abfrage 1:

UPDATE Item 
SET CategoryID = '6' 
WHERE 
    Title LIKE '%ASP%' 
    AND Title LIKE '%C#%' 

Abfrage 2:

UPDATE Item 
SET CategoryID = '6' 
WHERE 
    Title LIKE '%ASP%' 
    OR Title LIKE '%C#%' 

1 würde durch query 1 und query 2 abgestimmt werden, wie 1 sowohl ASP und C# enthält. Query 1 Kontrollen für sowohl derer, query 2 Kontrollen für jede.

2 würde nur durch query 2 übereinstimmen, weil 2 nicht sowohl "asp" und "C#" enthält. Es enthält nur "asp", die die Frage erfüllt "enthält Beispiel 2 die Zeichen" asp "oder" C# "- und die Antwort ist ja, weil es" asp "enthält. Wenn Sie die gleiche Frage auf 2 mit query 1 - "Enthält Beispiel 2 die Zeichen" asp "und" C# ", lautet die Antwort no/false, da sie nur eines der beiden Zeichen enthält.

Verwandte Themen