易截截图软件、单文件、免安装、纯绿色、仅160KB

mysql变量类型

9.3. 用户变量
可以先在用户变量中保存值然后在以后引用它;这样可以将值从一个语句传递到另一个语句。用户变量与连接有关
。也就是说,一个客户端定义的变量不能被其它客户端看到或使用。当客户端退出时,该客户端连接的所有变量将自动释放。
用户变量的形式为@var_name
,其中变量名var_name
可以由当前字符集的文字数字字符、‘.
’、‘_
’和‘$
’组成。
默认字符集是cp1252
(Latin1)
。可以用mysqld
的--default-character-set
选项更改字符集。参见5.10.1节,“数据和排序用字符集”
。用户变量名对大小写不敏感。
设置用户变量的一个途径是执行SET
语句:
SET @
var_name
=
expr
[, @
var_name
=
expr
] ...
对于SET
,可以使用=
或:=
作为分配符。分配给每个变量的expr
可以为整数、实数、字符串或者NULL
值。
也可以用语句代替SET
来为用户变量分配一个值。在这种情况下,分配符必须为:=
而不能用=
,因为在非SET
语句中=
被视为一个比较
操作符:
mysql>
SET @t1=0, @t2=0, @t3=0;
mysql>
SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
+----------------------+------+------+------+
| @t1:=(@t2:=1)+@t3:=4 | @t1  | @t2  | @t3  |
+----------------------+------+------+------+
|                    5 |    5 |    1 |    4 |
+----------------------+------+------+------+
用户变量可以用于表达式中。目前不包括明显需要文字值的上下文中,例如SELECT
语句的LIMIT
子句,或者LOAD
DATA
语句的IGNORE
number LINES
子句。
如果使用没有初始化的变量,其值是NULL

如果用户变量分配了一个字符串值,其字符集和校对规则与该字符串的相同。用户变量的可压缩性(coercibility
)是隐含的。(
即为表列值的相同的可压缩性(coercibility
)。
注释:
在SELECT
语句中,表达式发送到客户端后才进行计算。这说明在HAVING
、GROUP
BY
或者ORDER
BY
子句中,不能使用包含SELECT
列表中所设的变量的表达式。例如,下面的语句不能按期望工作:
mysql>
SELECT (@aa:=id) AS a
,(@aa+3) AS b


相关文档:

11 advanced MySQL questions

 

Explain MySQL architecture
. - The front layer
takes care of network connections and security authentications, the
middle layer does the SQL query parsing, and then the query is handled
off to the storage engine. A storage engine could be either a default
one supp ......

.\mysql\user is marked as crashed 解决办法

 
I found a solution to anyone else who may be having this problem.
First start mysql using skip grant tables
root@ns1 [/var/lib/mysql/mysql]# service mysql start --skip-grant-tables
Starting MySQL [ OK ]
now with mysql started, you can repair the mysql/user table
root@ns1 [/var/lib/mysql ......

mysql 行转列问题

这几天所作的工作涉及到数据库行转列的问题
记录一下出现的错误,以免以后再犯
举网上最通俗的例子吧
Name Subject Result
张三    语文         80
张三    数学         90
张三    物理  &n ......

mysqli与mysql区别

 mysql是非持继连接函数而mysqli是永远连接函数。也就是说
mysql每次链接都会打开一个连接的进程而mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销
有些朋友在编程的时候,使用new mysqli('localhost', usenamer', 'password', 'databasename');总是报错,Fatal error: Class 'mysqli' not found in ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号