Detailed explanation of the use of custom parameters in MySQL

Detailed explanation of the use of custom parameters in MySQL

MySQL variables include system variables and system variables. The learning task this time is user-defined variables. User variables mainly include local variables and session variables.

The declaration method of user-defined variables is as follows: @var_name, where the variable name consists of letters, numbers, ".", "_", and "$". Of course, you can include other characters when referring to a string or identifier (for example: @'my-var', @"my-var", or @my-var).

User-defined variables are session-level variables. The scope of its variables is limited to the client link in which it is declared. When the client disconnects, all its session variables will be released.

User-defined variables are not case-sensitive.

Use the SET statement to declare user-defined variables:

SET @my_var = 1; 
SET @my_var := 1;

When not using set, use := assignment because using = may be considered as a comparison operator.

The following is an example:

Write a SQL query to implement score ranking. If two scores are the same, then the two score ranks should be the same. Note that the next rank number after a tie should be the next consecutive integer value. In other words, there should be no "holes" between the rows and columns.

+—-+——-+
| Id | Score |
+—-+——-+
| 1 | 3.50 |
| 2 | 3.65 |
| 3 | 4.00 |
| 4 | 3.85 |
| 5 | 4.00 |
| 6 | 3.65 |
+—-+——-+

For example, given the Scores table above, your query should produce the following report (sorted by highest score):

+——-+——+
| Score | Rank |
+——-+——+
| 4.00 | 1 |
| 4.00 | 1 |
| 3.85 | 2 |
| 3.65 | 3 |
| 3.65 | 3 |
| 3.50 | 4 |
+——-+——+

Query statement:

select Score, @rank := @rank + (@pre <> (@pre:=Score)) Rank 
from Scores ,(SELECT @rank := 0,@pre := -1) INIT 
ORDER BY Score DESC

Note:

@rank indicates the ranking of grades

@pre indicates the score of the previous person

When the score is different from the previous one, @rank = @rank + 1, otherwise, @rank = rank.

Initialize @rank to 1 and @pre to -1.

The experimental results are:

The above detailed explanation of the use of custom parameters in MySQL is all the content that the editor shares with you. I hope it can give you a reference. I also hope that you will support 123WORDPRESS.COM.

You may also be interested in:
  • Detailed explanation of the definition and usage of MySQL stored functions (custom functions)
  • Detailed explanation of the entry-level use of MySql stored procedure parameters
  • Detailed explanation of MYSQL configuration parameter optimization

<<:  Vue.js implements timeline function

>>:  Analysis of Linux boot system methods

Recommend

How to enter directory/folder in Linux without using CD command

As we all know, without the cd command, we cannot...

How to configure SSL certificate in nginx to implement https service

In the previous article, after using openssl to g...

Detailed steps for installing and debugging MySQL database on CentOS7 [Example]

This example requires downloading and installing ...

Detailed Example of Row-Level Locking in MySQL

Preface Locks are synchronization mechanisms used...

8 ways to manually and automatically backup your MySQL database

As a popular open source database management syst...

Deploy Nginx+Flask+Mongo application using Docker

Nginx is used as the server, Mongo is used as the...

A very detailed summary of communication between Vue components

Table of contents Preface 1. Props, $emit one-way...

Complete step record of vue encapsulation TabBar component

Table of contents Implementation ideas: Step 1: C...

mysql5.6.8 source code installation process

Kernel: [root@opop ~]# cat /etc/centos-release Ce...

Detailed explanation of MySQL master-slave replication process

1. What is master-slave replication? The DDL and ...

Introduction to Linux File Compression and Packaging

1. Introduction to compression and packaging Comm...

Ant Design Blazor component library's routing reuse multi-tab function

Recently, there has been a growing demand for imp...