MySql S'il existe sélectionnez insérer ELSE

Je souffre à présent de deux heures maintenant. Je veux choisir ou de l'insertion d'un enregistrement. Si l'enregistrement existe pas sélectionner son ID d'autre de l'insérer et bénéficier de la nouvelle ID inséré. Pour l'instant, je suis en train de l'exécuter, mais j'obtiens toujours une erreur

SELECT CASE WHEN (SELECT COUNT(*) FROM Domains WHERE Domain = @domain)>0 
THEN 
    (SELECT Domain_ID FROM Domains WHERE Domain = @domain) 
ELSE        
    INSERT INTO Domains(Domain_ID,Domain,Disabled,Description) VALUES(@Domain_ID,@Domain,@Disabled,@Description);
Pourquoi requête pour count(*) ? juste de la requête pour le domaine de match, si il y aura des non-vide de suite, de retour, il reste insérer des données.
Êtes-vous essayer de faire ça dans une Procédure?
Je suis toujours à obtenir le coup de syntaxe de MySQL (donc je ne vais pas poster cela comme une réponse), mais je crois que vous voulez quelque chose le long des lignes de IF EXISTS (SELECT 1 FROM Domains WHERE Domain = @domain)... au lieu de SELECT CASE WHEN (SELECT COUNT(*) FROM Domains WHERE Domain = @domain)>0
Je l'ai fait essayer si sinon, s'il existe, et des trucs comme ça.. j'ai fini avec le code que vous voyez et je reçois un message d'erreur sur l'insertion.. je suis howping-je obtenir une réponse parce que je ne sais rien à propos de MySql
Pour quelqu'un d'autre c'est de la souffrance avec quelque chose comme ça. Parce que je ne connais pas beaucoup de MySql je desided à de simples requêtes sur insert, select, update, delete et faire ma logique programmaticaly. J'ai besoin de faire beaucoup de requêtes à la base de données et depuis que je suis en utilisant ASP.NET j'espère que ce ne sera pas trop lent..

OriginalL'auteur kms | 2012-10-01