-- 数据表
DROP TABLE IF EXISTS base_sysusers
;
CREATE TABLE base_sysusers
(
Id
int NOT NULL AUTO_INCREMENT COMMENT '主键自增Id',
UserName
varchar(255) COLLATE utf8_bin NOT NULL COMMENT '用户名',
PassWord
varchar(30) COLLATE utf8_bin DEFAULT NULL COMMENT '密码',
Level
int DEFAULT NULL COMMENT '级别',
State
tinyint DEFAULT NULL,
Parent_UserName
varchar(5) COLLATE utf8_bin DEFAULT NULL COMMENT '父级名称',
CreateTime
datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (Id
)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin;
-- 插入数据
INSERT INTO base_sysusers
VALUES ('1', 'Admin', 'admin', '200', '1', 'Admin', '2021-07-09 15:17:25');
INSERT INTO base_sysusers
VALUES ('2', 'Admin2', 'admin2', '200', '1', 'Admin', '2021-07-12 16:38:03');
查询数据时报错:
SELECT *
from base_sysusers
WHERE CONTAINS(UserName,'Admin');
网上参考地址: https://blog.csdn.net/weixin_42099755/article/details/113336497
也是这样的,不知道是什么情况,请大侠帮我看一下 mysql的问题
你看一下你的mysql是不是 InnoDB模式,这种模式不支持contains
1.InnoDB是一个可靠的事务处理引擎,它不支持全文本搜索。
2.MEMORY在功能等同于MyISAM,但由于数据存储在内存(不是磁盘)中,速度很快(特别适合于临时表)
3.MyISAM是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理。
你可以试试UserName字段建立索引后执行查询语句
这个和建立索引,没有关系吧,没有索引应该也能查询出数据才对的,现在的问题是不知道哪里写得不对
[SQL]SELECT *
from base_sysusers
WHERE CONTAINS(UserName,'Admin');
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(UserName,'Admin')' at line 3
@mengqiaofa:
你试试添加双引号,或者换一个字段查询看可以不
SELECT *
from base_sysusers
WHERE CONTAINS(UserName,'"Admin"');
@熊泽-学习中的苦与乐:
执行了也是不对啊