Obtenir l'index ou utiliser la liste de paires dans mysql?

.net dapper mysql

Question

Je veux faire quelque chose comme ci-dessous où ls est une paire (id et valeur pour correspondre à blah). Peut-être que si je pouvais obtenir l'index de la liste, je peux simplement utiliser la liste normalement et saisir l'ID dans le code

select @id from table1 where blah in @ls

Réponse acceptée

Dapper est un placeur très fin sur SQL. La seule chose qu’il ajoute en tant que changement de syntaxe est l’extension IN de:

x in @foo

à

x in (@foo0, @foo1, @foo2, @foo3)

Cependant, je ne pense pas que votre requête puisse être écrite comme ça. La première étape consiste alors à écrire votre requête en SQL standard. Si c'était SQL-Server, je penserais:

  • un fichier UDF qui transforme une entrée de chaîne délimitée en une sortie tabulaire
  • une jointure intérieure

par exemple:

select #x.id
from dbo.MyMagicUdf(@s) #x -- has columns id and value
inner join table1 t on t.blah = #x.value -- or whatever the join is

Mais pour le répéter: la première étape consiste à l’écrire en SQL pour votre SGBDR. Une fois que vous avez ce travail, il devrait être facile de faire fonctionner Dapper.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi