奇怪了,Mysql不支持中文查找?解决方法
奇怪了,Mysql不支持中文查找?
var a:string;
begin
a:='test';
with sqlquery1 do
begin
close;
SQL.Text := 'SET character_set_results = GB2312;';
execsql;
sql.Clear;
sql.Add('select * from vw_myuser where username ='''+a+'''');
close;
open;
end;
end;
这样一个查询。可以查出来数据。但是我把a:='test'换成a='管理员'立马报错。这是什么原因呢?mysql不能用中文查找吗?
------解决方案--------------------
你把SET character_set_results = GB2312去掉
------解决方案--------------------
进入mysql用以下查查
mysql> show databases;
mysql> show tables;
------解决方案--------------------
不知道把GB2312改成utf-8是否可行!
------解决方案--------------------
试试这个
=======================
dm.MySql.Close();
dm.MySql.SQL.Text := 'SET NAMES GB2312;';
dm.MySql.ExecSQL();
with dm.MySql do
begin
close;
SQL.Clear;
SQL.Add('select * from moviedata where ismv=""');
SQL.Add('and MvYear like "%'+combobox1.Text+'%" and MvArea like "%中国%"');
Prepared;
Open;
while not Eof do
begin
listbox3.Items.Add(FieldValues['MvNameCN']);
listbox4.Items.Add(FieldValues['ID']);
Next;
end;
end;
var a:string;
begin
a:='test';
with sqlquery1 do
begin
close;
SQL.Text := 'SET character_set_results = GB2312;';
execsql;
sql.Clear;
sql.Add('select * from vw_myuser where username ='''+a+'''');
close;
open;
end;
end;
这样一个查询。可以查出来数据。但是我把a:='test'换成a='管理员'立马报错。这是什么原因呢?mysql不能用中文查找吗?
------解决方案--------------------
你把SET character_set_results = GB2312去掉
------解决方案--------------------
进入mysql用以下查查
mysql> show databases;
mysql> show tables;
------解决方案--------------------
不知道把GB2312改成utf-8是否可行!
------解决方案--------------------
试试这个
=======================
dm.MySql.Close();
dm.MySql.SQL.Text := 'SET NAMES GB2312;';
dm.MySql.ExecSQL();
with dm.MySql do
begin
close;
SQL.Clear;
SQL.Add('select * from moviedata where ismv=""');
SQL.Add('and MvYear like "%'+combobox1.Text+'%" and MvArea like "%中国%"');
Prepared;
Open;
while not Eof do
begin
listbox3.Items.Add(FieldValues['MvNameCN']);
listbox4.Items.Add(FieldValues['ID']);
Next;
end;
end;