方法一:
金平網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),金平網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為金平上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的金平做網(wǎng)站的公司定做!
可以用%來(lái)實(shí)現(xiàn)
SELECT * FROM users WHERE emails like "%b@email.com%";
但是這樣子的話就會(huì)把bb@email.com也查出來(lái)了就不符合需求了
方法二:
利用mysql 字符串函數(shù) find_in_set();
SELECT * FROM users WHERE find_in_set('aa@email.com', emails);
這樣子就可以找到email字段里包含有aa@emial.com的所有用戶(hù)了
要注意的是:mysql字符串函數(shù) find_in_set(str1,str2)函數(shù)是返回str2中str1所在的位置索引,str2必須以","分割開(kāi)。
表button?
CREATE TABLE `button` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,? --主鍵索引
`button_name` varchar(45) NOT NULL COMMENT '功能名稱(chēng)',
`app_id` bigint(20) NOT NULL,
`permission_id` bigint(20) DEFAULT NULL,? -- permission_id 和 app_id 聯(lián)合索引。
`api_id` bigint(20) NOT NULL, --api_id單獨(dú)索引
PRIMARY KEY (`id`),
KEY `index_app_permission_lianhe` (`permission_id`,`app_id`) USING BTREE,
KEY `index_api_id_dange` (`api_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
主鍵索引,單獨(dú)索引,組合索引使用場(chǎng)景及優(yōu)化
表button 有3個(gè)索引,分別是:id主鍵,聯(lián)合索引(permission_id,app_id),api_id(單列索引)
button_name 無(wú)索引
查詢(xún)where條件中:
主鍵索引:
1、主鍵索引與聯(lián)合索引同時(shí)存在,使用主鍵索引
2、主鍵索引與單個(gè)索引同時(shí)存在,使用主鍵索引
結(jié)論:只要主鍵索引在,使用主鍵索引。
聯(lián)合索引 :
1、聯(lián)合索引與單列索引列 同時(shí)存在,使用單列索引
2、聯(lián)合索引中列順序顛倒無(wú)影響。
3、聯(lián)合索引實(shí)行最左側(cè)原則,即:?jiǎn)为?dú)查詢(xún)條件中只有permission_id可以使用聯(lián)合索引,單獨(dú)查詢(xún)條件中只有app_id不實(shí)用聯(lián)合索引。
4、如果查詢(xún)條件中只有app_id,但是select 條件中有 permission_id,則也使用聯(lián)合索引。
5、select id,app_id from button where app_id=1001; 使用聯(lián)合索引
6、explain select id,app_id,button_name from button where app_id=1001;不使用聯(lián)合索引
結(jié)論:索引優(yōu)先級(jí):主鍵索引,單列索引,組合索引
聯(lián)合索引中遵從最左側(cè)列原則。
當(dāng)查詢(xún)條件和返回結(jié)果中僅僅包含聯(lián)合索引中索引項(xiàng),也使用聯(lián)合索引。如第4條。
當(dāng)查詢(xún)條件中出現(xiàn)聯(lián)合索引中非最左側(cè)索引列,返回結(jié)果中含義聯(lián)合索引中的列或者主鍵則也使用聯(lián)合索引。
單個(gè)索引:
1、查詢(xún)條件中有單列索引,則使用,無(wú)不使用。
事例:
函數(shù)沒(méi)有用錯(cuò)。
mysql_fetch_array()函數(shù)每次只能得到一條記錄。如果要得到所有記錄,需要通過(guò)循環(huán)實(shí)現(xiàn)。
while?(true)?{
$row?=?mysql_fetch_array($rs);
if?(!$row)?{
break;
}
}
如有幫助,請(qǐng)采納,謝謝~
MySQL使用SQL查詢(xún)時(shí),
可以指定單列,如下:
select uid from dusers
也可以指定多列如下:
select uid,uname from dusers
也可以指定全部列
select * from dusers
以上只是簡(jiǎn)單查詢(xún),對(duì)于連接查詢(xún)的示例類(lèi)同,只是型式不太一樣。
select a.uid,a.uname,b.classname from dusers a,dclass b where a.classid=b.classid
如果是查詢(xún)某個(gè)表的全部可以使用*代替。
select a.*,b.classname from dusers a,dclass b where a.classid=b.classid
。。。。查詢(xún)的內(nèi)容很多,不一一列舉。
希望對(duì)你有幫助 。