innodb引擎的所有儲存了主鍵ID,事務(wù)ID,回滾指針,非主鍵ID,
他的查詢就會是非主鍵ID也可覆蓋來取得主鍵ID。
也就是說比如你在created_at上建立索引,此時主鍵也是在索引上的。不然你可以試試以下語句
explain select id from tablea where created_at = 1SELECT id, CONCAT(
CASE WHEN A=1 THEN 'A ' ELSE '' END,
CASE WHEN B=1 THEN 'B ' ELSE '' END,
CASE WHEN C=1 THEN 'C ' ELSE '' END,
CASE WHEN D=1 THEN 'D ' ELSE '' END,
CASE WHEN E=1 THEN 'E ' ELSE '' END)
FROM test2
select * from table_1 RIGHT JOIN table_2 ON table_1.id = table_2.uid
where table_1.status = 1 AND table_2.level_id = 1 AND table_2.level_id = 2
這段代碼意思是同一條table2的記錄同時是等級1和等級2,是個假命題。。
改的話需要right join兩次table2
select table_1.* from table_1
RIGHT JOIN table_2 t2Lv1 ON table_1.id = t2Lv1.uid ON t2Lv1.level_id = 1
RIGHT JOIN table_2 t2Lv2 ON table_1.id = t2Lv2.uid ON t2Lv2.level_id = 2
where table_1.status = 1
GROUP BY table_1.id
大致思路就是這樣
你可以了解下trigger的用法,但是呢,我個人建議是不要用觸發(fā)器好,用代碼邏輯實現(xiàn),這樣效率上會更高點,而不會給MySQL服務(wù)器造成一定的壓力,如果流量特別大的話
1.對于key idx(user_id, user_name)
如果查詢語句是這樣的 select * from mytable where user_id = 1; 這樣索引是生效的.
如果查詢語句是這樣的 select * from mytable where user_name = "tom"; 這樣索引是不生效的.
這是組合索引的最左優(yōu)先原則. 索引的第一個字段必須出現(xiàn)在查詢語句中.
兩個區(qū)別是 : 用user_i字段查詢多還是用user_name字段查詢多.
oracle日期類型可以直接加減,沒有add_days這個函數(shù),如:
select sysdate - 1 from dual;
返回結(jié)果是昨天的當前時間點
你試試用systemctl這個命令,這個問題可以去deepin bbs論壇提問的。
類似于,
systemctl disable mysqld.service
或者是mysql.service
關(guān)于systemctl和chkconfig的用法區(qū)別,可以參照下網(wǎng)上的文章
http://blog.csdn.net/kenhins/...
我也碰到類似的警告。 說是某某函數(shù)被棄用。 有些是可以忽略的。
如果你的庫2就沒有sku表,可以通過mysqldump命令來把庫1中的sku表導(dǎo)出到文件,再把這個文件中的數(shù)據(jù)導(dǎo)入到庫2中即可:
$ mysqldump -uroot -proot --databases db1 --tables sku >/tmp/sku.sql
$ mysql -uroot -proot db2 < /tmp/sku.sql
如果你庫2本身也有sku表,只是想將庫1中庫2沒有的數(shù)據(jù)更新到庫2,那么首先你得通過insert ... select語句來操作,需要注意,語句最好不要一次性插入10w數(shù)據(jù),最好按一定條件分開,比如id,因為mysql內(nèi)部有一定限制:
INSERT INTO db2.sku
SELECT * FROM db1.sku
where
(db1.sku.id between 1 and 10000)
and (db2.sku沒有這條數(shù)據(jù));
INSERT INTO db2.sku
SELECT * FROM db1.sku
where
(db1.sku.id between 10001 and 20000)
and (db2.sku沒有這條數(shù)據(jù));
希望能幫助到你。
err的翻譯是
The API configuration file does not exist
API配置文件不存在
我建議你直接找后端小伙伴解決這個問題
匹配user開頭
RewriteRule ^/user/(.+)$ /user/$1.php [PT,QSA,L]
eg:/user/index -> /user/index.php
匹配任意
RewriteRule ^/(.+)/(.+)$ /$1/$2.php [PT,QSA,L]
eg:/admin/ttt -> /admin/ttt.php
添加#就變?yōu)殄^點了,不建議這樣做
好吧,最后在node mysql官方的issues中找了很多例子,結(jié)果發(fā)現(xiàn)如果直接用一條語句的話,很多查詢結(jié)果都是返回一個json或object而不是一個array,所以我最后的做法是這樣
SELECT
posts.post_id,
posts.post_title,
GROUP_CONCAT(tags.tag_name) as tags
FROM posts
LEFT JOIN tags ON posts.post_id = tags.post_id
GROUP BY posts.post_id
LIMIT 0,10
node _sql
const getLists = async (page) => {
let _sql = `SELECT
posts.*,
GROUP_CONCAT(tags.tag_name) as tags
FROM posts
LEFT JOIN tags ON posts.post_id = tags.post_id
GROUP BY posts.post_id
LIMIT ${(page - 1) * 10},10`
return dbquery(_sql)
}
得到了全部tag并轉(zhuǎn)成了字符串類型
hibernate的查詢是用query對象來進行的,即Query query=session.createQuery(sql),在對query遍歷或者直接轉(zhuǎn)list就行。
設(shè)置一個定時器,剛開始讓所有的table的div都顯示,在頁面打開若干秒或者毫秒之后,讓不該顯示的div隱藏就好了hide(),目前完美解決,后續(xù)有問題再續(xù)問
你可以看看這篇文章 使 sqlalchemy 數(shù)據(jù) json 化。
當然,如果你要是想學(xué)習(xí) sqlalchemy, 可以看看我的這個項目 sql_to_sqlalchemy
py3 必須使用絕對引用了
一般的格式是 from . import 模塊名,最好養(yǎng)成這個習(xí)慣
前面啰嗦得太多,我再把問題精簡一下:
如何設(shè)計詞索引,使得 —— 若 將來 改進了分詞算法,在不重建索引的情況下,搜索結(jié)果也能改進?
例如,當詞典沒有“區(qū)塊鏈”一詞時,搜索結(jié)果可能包含大量“區(qū)塊”和“鏈”兩個詞的文檔;當把“區(qū)塊鏈”加入詞典后,在不重建索引的情況下,立即就能找到包含“區(qū)塊鏈”的文檔,排名在包含“區(qū)塊”和“鏈”兩個詞的文檔前面。
都說互聯(lián)網(wǎng)開發(fā)盡量不用外鍵,那么這里的不用外鍵到底代表的啥意思呢?
這里的外鍵指的數(shù)據(jù)庫的外鍵約束。
不用外鍵約束。比如刪除一張表中的數(shù)據(jù)時,如果要級聯(lián)刪除另一張表中關(guān)聯(lián)的數(shù)據(jù),以往是由數(shù)據(jù)庫來級聯(lián)約束的,現(xiàn)在應(yīng)該將其移到程序中由程序來保持數(shù)據(jù)的一致性。
是的。外鍵這種約束關(guān)系不在由數(shù)據(jù)庫幫你保持維護,由應(yīng)用程序維護。
外鍵的定義就是在一個表中的字段是另外一張表中的主鍵。如果僅按照"不使用外鍵"這幾個字的字面理解,就是要把外鍵字段抽取出來放在一張中間表中。簡單說就是都當成多對多來處理。
不是的。怎么建表還是和原來一樣,只不過在需要建立外鍵約束的地方不建立外鍵約束而已。
比如我們原來建表語句是這樣的:
CREATE TABLE `user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`user_name` varchar(50) NOT NULL DEFAULT '' COMMENT '用戶名',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `order` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`total_price` decimal(10,2) NOT NULL DEFAULT '0.00',
`user_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `for_indx_user_id` (`user_id`),
CONSTRAINT `for_indx_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
不是用外鍵約束后:
CREATE TABLE `user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`user_name` varchar(50) NOT NULL DEFAULT '' COMMENT '用戶名',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `order` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`total_price` decimal(10,2) NOT NULL DEFAULT '0.00',
`user_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
不適用外鍵約束后,為了加快查詢我們通常會給不建立外鍵約束的字段添加一個索引。
CREATE TABLE `order` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`total_price` decimal(10,2) NOT NULL DEFAULT '0.00',
`user_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果你理解了,你下面的問題就自然而然不存在了。
避免使用外鍵,可以在插入數(shù)據(jù)時通過程序維持約束關(guān)系。
使用外鍵約束優(yōu)點:
使用外鍵約束缺點:
實際開發(fā)中,一般不會建立外鍵約束。
sql to sqlalchemy 項目,這是基于 MYSQL 的,你要是通過這個練習(xí),你的 sqlalchemy 會飛起來。如果你真需要,我可以給你MySQL的用戶和密碼。別問我是誰,我是雷鋒。
個人理解如果數(shù)據(jù)庫是這么設(shè)計的話,初衷是讓在應(yīng)用程序中處理:按照逗號分隔,逐條查詢rule表,更常規(guī)的做法是用一個用戶和規(guī)則的關(guān)聯(lián)表。
如果非要用sql做關(guān)聯(lián)查詢,可以用FIND_IN_SET,不過效率不會太高。
select *
from
(select '1,2,3,4,5' ids) t1 inner join (select 1 id, '張三' name union select 2, '李四') t2
on FIND_IN_SET(t2.id, t1.ids) > 0北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務(wù)負責iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。