思路如下,分別將A與B,A與C進(jìn)行關(guān)聯(lián),然后使用 union 進(jìn)行連接,查詢時(shí),直接使用這個(gè)查詢就可以了(可以建個(gè)視圖,查詢起來(lái)比較方便 ),如下:
目前創(chuàng)新互聯(lián)已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、米易網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
select?d.id,?d.name
from?(select?A.id,?B.name
from?A,?B
where?A.id?=?B.id
and?A.type?=?'教師'
union
select?A.id,?C.name
from?A,?C
where?A.id?=?C.id
and?A.type?=?'教室')?d
where?d.id?=?123
有問(wèn)題請(qǐng)追問(wèn),希望可以幫到你
我的表結(jié)構(gòu)如下:
create table students(id int auto_increment,
name varchar(10) not null DEFAULT '',
age int not null DEFAULT 0,
sex varchar(2) not null DEFAULT '',
studId varchar(18) not null DEFAULT '',
PRIMARY KEY (`id`));
觸發(fā)器:
DELIMITER $$
CREATE TRIGGER `students_insert` BEFORE INSERT ON `students`
FOR EACH ROW
BEGIN
if mod(substring(new.studId,17,1),2)=0 then
set new.sex = '女';
else
set new.sex = '男';
end if;
END;
$$
DELIMITER ;
以上程序已測(cè)試通過(guò),
另外友情提醒一下,在觸發(fā)器中處理這個(gè)判斷,效率不高,最好在程序中處理這部分邏輯.
存儲(chǔ)過(guò)程啊。if status=1 or status=9 then {需要執(zhí)行的語(yǔ)句} end if;
我想你的意思是判斷后再
SELECT tmpDeptLst.*,tbl_department.* FROM tmpDeptLst ,tbl_department
where tmpDeptLst.id = tbl_department.ID and PARENT_ID is not null
后加個(gè)and tbl_department.STATUS = status 條件。那么就定義兩個(gè)varchar變量,第一個(gè)比如是A是存
SELECT tmpDeptLst.*,tbl_department.* FROM tmpDeptLst ,tbl_department
where tmpDeptLst.id = tbl_department.ID and PARENT_ID is not null
第二就弄個(gè)全局變量或者其他的。
if status=1 or status=9 then
@B=concat(A,'and tbl_department.STATUS = status');
-- 執(zhí)行sql
prepare create_sql from @B;
EXECUTE create_sql ;
DEALLOCATE prepare create_sql;
end if;
1、創(chuàng)建測(cè)試表,
create table test_person(id int, RMB int);
2、插入測(cè)試數(shù)據(jù)
insert into test_person values(1,180);
insert into test_person values(2,170);
insert into test_person values(3,290);
insert into test_person values(4,160);
insert into test_person values(5,299);
insert into test_person values(6,266);
insert into test_person values(7,155);
3、查詢表中所有記錄,select t.* from test_person t,
4、編寫sql,匯總每個(gè)vip類型的用戶數(shù),
select vip_type, count(distinct id)
from (select case when RMB100 and RMB200 then 'VIP1' when RMB200 then 'VIP2' end as vip_type, id
? ? from test_person) t
group by vip_type
mysql DELIMITER // mysql CREATE PROCEDURE TestIfElse - ( - p_val INT - ) - BEGIN - IF (p_val = 1) THEN - SELECT '1' AS A; - ELSEIF (p_val = 2) THEN - SELECT '2' AS A; - ELSE - SELECT 'other' AS A; - END IF; - END// Query OK, 0 rows affected (0.05 sec) 上面是一個(gè)最簡(jiǎn)單的 mysql 的 IF / ELSEIF 的例子了...
方法一:通過(guò)mysql建立索引,比如用戶名不能重復(fù),則將用戶名字段建立Unique類型的索引
方法二:程序判斷嘍,selec一下是否存在