SQL> select count(1) from SMS_MSG where STATUS_ID='3' and (PHONE_NO like '135%'
or PHONE_NO like '136%' or PHONE_NO like '138%' or PHONE_NO like '139%' or PHONE
_NO like '137%');SQL> select count(1) from SMS_MSG where STATUS_ID='3' and (substr(phone_no,1,3)=
135 or substr(phone_no,1,3)=136 or substr(phone_no,1,3)=137 or substr(phone_no,1
,3)=138 or substr(phone_no,1,3)=139);这两种执行效率有怎么判断哪个效率更高些!
or PHONE_NO like '136%' or PHONE_NO like '138%' or PHONE_NO like '139%' or PHONE
_NO like '137%');SQL> select count(1) from SMS_MSG where STATUS_ID='3' and (substr(phone_no,1,3)=
135 or substr(phone_no,1,3)=136 or substr(phone_no,1,3)=137 or substr(phone_no,1
,3)=138 or substr(phone_no,1,3)=139);这两种执行效率有怎么判断哪个效率更高些!
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select ID,PHONE,CONTENT,STATUS_ID from JLSMS where STATUS_ID='0' and rownum<50");
ADOQuery1->Open();
ADOQuery1->First();
msg->Text=ADOQuery1->RecordCount;
if (!ADOQuery1->Eof)
{
//处理
}
这是另外一个表也出现相同问题我现在觉得是不是数据库有什么问题?为什么会这样?
速度會增快的
另外LIKE,IN這類的最好不用
可以象樓上說的用SUBSTR()來實現的