How to select the first row from a query into a procedure-variable in MySQL

mysql select into variable
how to store select query result in variable in mysql
mysql stored procedure select multiple rows into variable
mysql store multiple rows in variable
mysql select into variable multiple
mysql set multiple variables from select
mysql declare variable
mysql stored procedure result set into variable
DECLARE topScorer INT default 0;

SELECT id INTO topScorer FROM game_player
WHERE game_player.score = (SELECT max(score) FROM game_player)

A bad example but one that could easily result from naive coding... it doesn't work in my testing if multiple rows are returned, how can I get the first returned row into the variable?

Do you need just the one score?

SELECT id 
  INTO topScorer 
  FROM game_player
 WHERE game_player.score = (   SELECT max(score) as maxScore 
                                 FROM game_player 
                                 ) LIMIT 1

Update: Sir Rufo was right, the code above has now been corrected.

Variables (Transact-SQL), How do I assign a SQL query result to a variable? MySQL SELECT INTO Variable syntax To store query result in one or more variables, you use the SELECT INTO variable syntax: SELECT c1, c2, c3, INTO @v1, @v2, @v3,

Apply limit in sub query to get only 1 value from sub query

SELECT id 
  INTO topScorer 
  FROM game_player
 WHERE game_player.score = ( SELECT max(score) 
                               FROM game_player  LIMIT 1 );

Or to get multiple value from sub query used below one:

SELECT id 
  INTO topScorer 
  FROM game_player
 WHERE game_player.score in ( SELECT max(score) 
                               FROM game_player );

Execute a Stored Procedure Within a Query, returns a result set. The OPENROWSET function is key to this technique, which involves three steps. How to Select First Row in each SQL Group By group with example. For this SQL Select first row in each group example, We are going to use the below shown data. The SQL ROW_NUMBER Function allows you to assign the rank number to each record present in a partition. In this example, we show you how to Select First Row from each SQL Group.

Use LIMIT x to ensure you are receiving only x rows from your query.

In this case you only want to get 1 row:

SELECT id 
  INTO topScorer 
  FROM game_player
 WHERE game_player.score = ( SELECT max(score) 
                               FROM game_player )
 LIMIT 1

SQL Fiddle DEMO

As a working alternative you can also use this

  SELECT id 
    INTO topScorer 
    FROM game_player
ORDER BY score DESC
   LIMIT 1

SQL Fiddle DEMO

SELECT @local_variable (Transact-SQL), How do I create a procedure with parameters in MySQL? It really depends on how your table is structured. I mean, if I pulled a record from your table and told you it was the first one inserted, how would you know? Would you check a ‘date_created’ field in the db?

1) declare variable in SP:

declare @CourseID int 
set @CourseID = 0

2) We need two query first for assign ID to variable and inner query for select only Top 1 record form table. In where clause of first query we compare ID with result of inner query:

SELECT @CourseID = ID FROM Course ID = ( Select Top 1 ID from Course ) 

3) Now check Variable value:

 if(@CourseID > 0 )
    Begin
           //This mean ID of first row is assigned to CourseID
    End
    Else 
    Begin
      //Can't found any record.
    End

MySQL Stored Procedure Parameters, In addition, the query must returns zero or one row. If the query return no rows, MySQL issues a warning of no data and the value of the variables remain  Select into variables. mysql> mysql> CREATE TABLE Employee Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start

MySQL SELECT INTO Variable, Selection from MySQL Stored Procedure Programming [Book] a single row, you can return that row into stored program variables by using the INTO statement  The INTO position at the end of the statement is supported as of MySQL 8.0.20, and is the preferred position. The position before a locking clause is deprecated as of MySQL 8.0.20 and support for it will be removed in a future MySQL version.

5.2. Using SELECT Statements with an INTO Clause, ------Creating Stored Procedures in MySQL------ --Make sure you have version 5 of +-----------+ 1 row in set (0.00 sec) --First pick a database to use (a procedure, like because we will use the semicolon WITHIN the --procedure declarations, and AS Output; // Query OK, 0 rows affected (0.00 sec) --Whenever you create a  Step two is to select the rest of the row by joining these results back to the same table. Since the first query is grouped, it needs to be put into a subquery so it can be joined against the non-grouped table:

Stored Procedure Examples, INTO form of SELECT enables a query result to be stored in variables or into variables. SELECT INTO OUTFILE writes the selected rows to a file. variables, each of which can be a user-defined variable, stored procedure or The first character of the FIELDS TERMINATED BY and LINES TERMINATED BY values. MySQL IF ELSE statement implements a basic conditional construct when the expression evaluates to false. Its syntax is as follows: The statements must end with a semicolon. To demonstrate the use of IF ELSE statement within MySQL stored procedure, we are creating the following stored procedure which is based on the values, as shown below, of

Comments
  • maybe add "LIMIT 1" to select statement? ;o)
  • never seen that keyword before, neat
  • SELECT max( Column ) FROM table will return one or none row. LIMIT this statement is useless
  • why do you limit a statement which can only return one or none row as "SELECT MAX( Column ) FROM Table" will do? And "SELECT ... INTO ..." should only return 1 row max, otherwise you will get an error