首页 > mysql中字符串类型可以自动转为其它类型吗?

mysql中字符串类型可以自动转为其它类型吗?

在php中实现一个执行sql update语句的函数,传入参数表名,列值对的数组和where语句。在拼sql语句的时候,是否必须要知道列的类型,是否可以所有列的值都作为字符串处理(用引号括起来)。例如:update table1 set intcol=‘999’ where id=123。这句sql是可以执行通过的,但是可以作为普遍原则吗,有没有特殊的情况?


供参考:

mysql> create table sf (x boolean);
Query OK, 0 rows affected (0.04 sec)

mysql> describe sf;
+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| x     | tinyint(1) | YES  |     | NULL    |       | 
+-------+------------+------+-----+---------+-------+
1 row in set (0.00 sec)

mysql> insert into sf values ("true"), ("1"), ("false"), ("0"), (TRUE), (FALSE);
Query OK, 6 rows affected, 2 warnings (0.00 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> select * from sf;
+------+
| x    |
+------+
|    0 | 
|    1 | 
|    0 | 
|    0 | 
|    1 | 
|    0 | 
+------+
6 rows in set (0.00 sec)
【热门文章】
【热门文章】