Hans: bräuchte ein wenig HILFE mit SELECT-Statements unter MySQL

Hallo,

tabelle:

  
+-----------------+  
| bezeichnung | x |  
+-----------------+  
|     bla     | 3 |  
+-----------------+  
|     blub    | 2 |  
+-----------------+  

statement:

  
select bezeichnung,count(bezeichnung) from tbl where x = 3 group by bezeichnung into @res;  

ich versuche datensätze zu selektieren in denen x = 3 ist, bis hier hin kein problem. dabei soll aber auch die anzahl der selektierten datensätze in die variable res geschrieben werden. dies soll nur mittels sql-statments innherhalb einer procedure gemacht werden.

ich bekomme bei obigem statement folgende fehlermeldung:
ERROR 1222 (21000): The used SELECT statements have a different number of columns

???

hans

  1. select bezeichnung,count(bezeichnung) from tbl where x = 3 group by bezeichnung into @res;

    
    >   
    > ich versuche datensätze zu selektieren in denen x = 3 ist, bis hier hin kein problem. dabei soll aber auch die anzahl der selektierten datensätze in die variable res geschrieben werden. dies soll nur mittels sql-statments innherhalb einer procedure gemacht werden.  
      
    Würde als MySQL-Laie diese Syntax erwarten:  
      
    
    > ~~~sql
      
    
    > select bezeichnung,count(bezeichnung) from tbl where x = 3 group by bezeichnung into @res, @Bezeichnung_Count;  
    > 
    
    

    Später köänntest Du ja die beiden Zielvaraiblen "verbinden".

    1. Hi,

      select bezeichnung,count(bezeichnung) from tbl where x = 3 group by bezeichnung into @res, @Bezeichnung_Count;

      
      >   
      
      das funzt auch nicht:  
      ERROR 1172 (42000): Result consisted of more than one row  
        
      hab auch schon einiges probiert, bekomms einfach nicht hin...
      
      1. Bist Du denn sicher, dass Du so Variablen befüllen darfst?

        http://dev.mysql.com/doc/refman/5.1/de/select.html

        1. Bist Du denn sicher, dass Du so Variablen befüllen darfst?

          http://dev.mysql.com/doc/refman/5.1/de/select.html

          So vielleicht?

          http://dev.mysql.com/doc/refman/5.1/de/select-into-statement.html

          1. hi,

            So vielleicht?

            http://dev.mysql.com/doc/refman/5.1/de/select-into-statement.html

            ne leider auch nicht, selbige fehlermeldung, hatte ich auch schon probiert. mir gehn echt die ideen aus.

            1. So vielleicht?

              http://dev.mysql.com/doc/refman/5.1/de/select-into-statement.html

              ne leider auch nicht, selbige fehlermeldung, hatte ich auch schon probiert. mir gehn echt die ideen aus.

              Was hast Du denn probiert? Kommst Du immer noch mit @Variable?

              1. hi,

                Was hast Du denn probiert? Kommst Du immer noch mit @Variable?

                mal was anderes:
                gibt es innerhalb mysql sowas wie mysql_num_rows()?
                wie gesagt, ich möchte das innerhalb der datenbank realisieren, ohne php-skript oder ähnliches.

  2. echo $begrüßung;

    select bezeichnung,count(bezeichnung) from tbl where x = 3 group by bezeichnung into @res;
    ERROR 1222 (21000): The used SELECT statements have a different number of columns

    Pro Spalte der SELECT-Klausel muss eine Variable angegeben werden. Außerdem darf die Ergebnismenge nur eine Zeile umfassen. Limitiere ich sie mittels LIMIT 1, kommt auch die Fehlermeldung "Result consisted of more than one row" nicht.

    echo "$verabschiedung $name";