php - 如何创建包含各种排序规则的 MySQL 表?

标签 php mysql

这是创建 MySQL 表的代码:

$dbcon = @mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) ;
$q = 
"CREATE TABLE list 
(
fname VARCHAR(30) NOT NULL,
email VARCHAR(60) NOT NULL,
PRIMARY KEY (fname)
)";
$result = @mysqli_query ($dbcon, $q); 

上表不适合我的需要,因为我的 fname 输入包含非拉丁字符!我得到 fname 值,例如 ????

我读过有关“utf8_general_ci”的内容,但当我只需要该排序规则的一个字段为“utf8_general_ci”时,此地址指向整个表和数据库。

有人能给我一个创建“多重排序规则”表的代码吗?

最佳答案

CREATE TABLE list 
(
  fname VARCHAR(30) NOT NULL COLLATE utf8_general_ci,
  email VARCHAR(60) NOT NULL,
  PRIMARY KEY (fname)
)

看看MySQL Reference Manual 。您可以使用 COLLATE 关键字轻松更改单个列的排序规则,如上面的示例所示。

每个表都有一个标准排序规则(通常是预定义的)。如果您没有在 CREATE 语句中指定其他排序规则,或者之后不更改表,它将回退到表的标准排序规则。

关于php - 如何创建包含各种排序规则的 MySQL 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24754727/

相关文章:

php - 存储注册状态不正常(始终存储值 "C",但如果注册已支付,则应存储 "I")

php - SOLID 原则中的 SRP 会导致 Lasagna Code 吗?

mysql - 如何使用 CURDATE() 作为列名

php - Nodejs 和一些更基本的问题

javascript - HTML post php 变量以形成附加数据

php - html 格式的 ActionScript 未正确执行

php - $_POST 在它看到的第一个空格处停止

Mysql 数据库查询未按预期工作

mysql - 按多个表mysql中的重复项数量排序

php - SQL 语句在 SUM() 函数上停止运行