> For the complete documentation index, see [llms.txt](https://404dream.gitbook.io/mysql/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://404dream.gitbook.io/mysql/summary/examples-of-common-queries/using-user-defined-variables.md).

# 4.6.5 用户自定义变量

您可以使用MySQL用户变量记住结果，而不必将其存储在客户端中的临时变量中。 （见第10.4节“用户自定义变量”。）

例如，要找到最高和最低价格的文章，您可以这样做：

```
mysql>SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop;
mysql>SELECT * FROM shop WHERE price=@min_price OR price=@max_price;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|    0003 | D      |  1.25 |
|    0004 | D      | 19.95 |
+---------+--------+-------+
```

**注意**

**还可以将数据库对象（例如表或列）的名称存储在用户变量中，然后在SQL语句中使用此变量;然而，这需要使用准备好的语句。有关详细信息，请参见第14.5节“准备的SQL语句语法”。**

\===来自评论区===

请记住，如果使用用户变量，则在服务器上使用查询缓存选项时，查询将不被缓存，因此答案可能会比我们预期的慢。
