SET @var_name = expr [, @var_name = expr] ...
mysql> SET @v1 = X'41';mysql> SET @v2 = X'41'+0;mysql> SET @v3 = CAST(X'41' AS UNSIGNED);mysql> SELECT @v1, @v2, @v3;+------+------+------+| @v1 | @v2 | @v3 |+------+------+------+| A | 65 | 65 |+------+------+------+mysql> SET @v1 = b'1000001';mysql> SET @v2 = b'1000001'+0;mysql> SET @v3 = CAST(b'1000001' AS UNSIGNED);mysql> SELECT @v1, @v2, @v3;+------+------+------+| @v1 | @v2 | @v3 |+------+------+------+| A | 65 | 65 |+------+------+------+
mysql> SELECT c1 FROM t;+----+| c1 |+----+| 0 |+----+| 1 |+----+2 rows in set (0.00 sec)mysql> SET @col = "c1";Query OK, 0 rows affected (0.00 sec)mysql> SELECT @col FROM t;+------+| @col |+------+| c1 |+------+1 row in set (0.00 sec)mysql> SELECT `@col` FROM t;ERROR 1054 (42S22): Unknown column '@col' in 'field list'mysql> SET @col = "`c1`";Query OK, 0 rows affected (0.00 sec)mysql> SELECT @col FROM t;+------+| @col |+------+| `c1` |+------+1 row in set (0.00 sec)
mysql> SET @c = "c1";Query OK, 0 rows affected (0.00 sec)mysql> SET @s = CONCAT("SELECT ", @c, " FROM t");Query OK, 0 rows affected (0.00 sec)mysql> PREPARE stmt FROM @s;Query OK, 0 rows affected (0.04 sec)Statement preparedmysql> EXECUTE stmt;+----+| c1 |+----+| 0 |+----+| 1 |+----+2 rows in set (0.00 sec)mysql> DEALLOCATE PREPARE stmt;Query OK, 0 rows affected (0.00 sec)
<?php$mysqli = new mysqli("localhost", "user", "pass", "test");if( mysqli_connect_errno() )die("Connection failed: %s\n", mysqli_connect_error());$col = "c1";$query = "SELECT $col FROM t";$result = $mysqli->query($query);while($row = $result->fetch_assoc()){echo "<p>" . $row["$col"] . "</p>\n";}$result->close();$mysqli->close();?>
文章转载自林员外聊编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




