recherche

Maison  >  Questions et réponses  >  le corps du texte

Met à jour une cellule dans une ligne spécifiée et une colonne non spécifiée avec un contenu contenant une chaîne spécifique

<p>J'ai un tableau avec les colonnes suivantes : nom - cours1 - cours2 - cours3. Les deux lignes ressemblent à ceci : </p> <pre class="brush:php;toolbar:false;">John - physique - mathématiques - art Sara - mathématiques - chimie - psychologie</pre> <p>Maintenant que John a été expulsé du cours de mathématiques, je souhaite remplacer « math » par « aucun » dans ses lignes. </p> <p>Lorsque j'ai cherché une solution, j'ai trouvé ceci : </p> <pre class="brush:php;toolbar:false;">UPDATE tableName SET `course1` = 'none' WHERE `name`='John' AND `course1`='math';</pre> <p>Cela pourrait être utile si je savais dans quelle colonne de John "math" a été enregistrée. Mais le mot peut apparaître dans n’importe quelle colonne. Ce dont j'ai besoin, c'est de quelque chose comme ceci : </p> <p>sql_query="Recherchez la ligne où <code>name</code>='John', puis recherchez la colonne où nous avons le mot 'math', remplacez simplement 'math' par 'none'. </p> <p>Pouvez-vous m'aider à résoudre ce problème ? </p>
P粉197639753P粉197639753450 Il y a quelques jours531

répondre à tous(1)je répondrai

  • P粉113938880

    P粉1139388802023-09-05 11:25:34

    Dans ce cas, je pense qu'il n'y a pas d'autre moyen que d'évaluer chaque colonne, comme ceci :

    update
       my_table
    set 
       course1 = if(course1 = 'math', 'none', course1),
       course2 = if(course2 = 'math', 'none', course2),
       course3 = if(course3 = 'math', 'none', course3)
    where
       name = 'John';

    répondre
    0
  • Annulerrépondre