1、ERROR 1822 (HY000): Failed to add the foreign key constraint. Missing index for constraint 'productnotes_ibfk_1' in the referenced table 'products'
我的错误是没有将products表中的prod_id字段设为主键,然后就无法将prod_id作为productnotes表的外键。
2、远程主机连接失败,报错:this authentication plugin is not supported
修改数据库:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'mypassword';
查表,发现修改成功
mysql> select host,user,plugin from mysql.user;
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| % | root | mysql_native_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
+-----------+------------------+-----------------------+
4 rows in set (0.00 sec)
root用户对应的host变成了%,即远程主机也可以访问mysql服务
3、in查询条件返回的结果集不是按照in中值的顺序排序,可以通过ORDER BY FIELD(column_name, value1, value2, value3, ...) 来排序。
4、escape 关键字用来指定转义字符。例如
SELECT * FROM `table` WHERE `column` LIKE '%\_%' ESCAPE '\';
其中,指定转义字符为反斜杠\ , 特殊字符 _ % 单引号' 需要被转义。其中,_ 是通配符,表示匹配1个字符; %是通配符,表示匹配0个或多个字符;单引号用于表示字符串。
5、NULL表示没有值,不等于空字符串。当字段值为NULL时,查询显示为NULL
mysql> select * from user;
+------+----+
| name | id |
+------+----+
| | 1 | # id为1的用户 name为空字符串
| u1 | 2 |
| u2 | 3 |
| NULL | 4 | # id为4的用户 name为NULL,表示没有设置name
+------+----+
4 rows in set (0.00 sec)
在user表中id为4的用户 name为NULL,但是通过golang xorm框架获取user表的数据, id为4的user对象的name为""
6. MyISAM引擎数据库 查询字段 不区分大小写