鍍金池/ 問答/ 數(shù)據(jù)庫問答
莫小染 回答

mysql日期操作函數(shù)了解下

DATE_FORMAT(DATE_ADD(`date`, INTERVAL 6-DATE_FORMAT(`date`,'%w') DAY), '%Y-%m-%d')

如果需要當(dāng)今天是周六時(shí)存下周六日期的話,interval中間部分加個(gè)if即可。

詆毀你 回答

1.有不確定列--->這個(gè)是沒有必要的,必須的列應(yīng)該相對(duì)固定的,如果不固定,從幾十個(gè)到幾百個(gè),你呈現(xiàn)數(shù)據(jù)的時(shí)候怎樣呈現(xiàn)?
你都不確定有哪些列,你前端頁面怎么寫?
真要有一些可有可無的字段,你可以統(tǒng)一把它存在一個(gè)字段或另一個(gè)表中。

2.比如回復(fù)這個(gè)字段,可能有上百萬-->回復(fù)的內(nèi)容不可能和存文章的表是同一個(gè)吧?
回復(fù)當(dāng)然是需要獨(dú)立的一個(gè)表。
當(dāng)一個(gè)字段需要存多個(gè)結(jié)果時(shí),一般這個(gè)字段的內(nèi)容會(huì)獨(dú)立到另一個(gè)表中。

3.雖然 mongodb 沒有像關(guān)系型數(shù)據(jù)庫那么多限制,但基本的設(shè)計(jì)我覺得還是得按關(guān)系型數(shù)據(jù)庫來。
你把所有東西都放到一個(gè)表中,你批量查詢的時(shí)候是應(yīng)該比較快的,但你想精確查找的時(shí)候可能很麻煩,還有就是寫入也可能很麻煩。
比如回復(fù),如果你回復(fù)的內(nèi)容是存在文章表中的“回復(fù)”字段的話,每次添加一條回復(fù)的時(shí)候,你得把原數(shù)據(jù)先查出來,再把回復(fù)數(shù)據(jù)的內(nèi)容拿出來,還需要循環(huán)一遍看回復(fù)的內(nèi)容有沒有重復(fù)。

擱淺 回答

MySQL里很簡單

SELECT * FROM table ORDER BY RAND() LIMIT 10

刪除你的 migration/ 文件夾,重新執(zhí)行試試。

陌南塵 回答

1000條數(shù)據(jù)不算太大吧。

假灑脫 回答

你是當(dāng)前執(zhí)行commit的線程查詢,當(dāng)然能查到。換成mysql?。悖欤椋澹睿粼僭囈幌拢筒椴坏搅恕?/p>

伐木累 回答

圖片描述,不知道你還能看懂,不懂再追問,我最近也在啃這本書

呆萌傻 回答

select result := count(*) from tree where ...

愚念 回答

應(yīng)該是數(shù)據(jù)庫編碼和php編碼不同造成的,sqlserver一般是gbk編碼,php一般是utf-8編碼,最后設(shè)置下php那邊的編碼,比較改代碼比改已經(jīng)運(yùn)行的數(shù)據(jù)庫靠譜

萌二代 回答

MongoDB支持全文索引,但對(duì)于中文的支持只在企業(yè)版中有。

背叛者 回答

使用了一個(gè)比較笨的方法,就先與時(shí)間拼接成一個(gè)字符串 Concat(time,列) as newColumn ,然后MAX取得最大值,接著在使用sub取時(shí)間后的內(nèi)容

看過了就是HEADER文件找不到的問題,處理后則可以成功編譯安裝生成 mongodb.so 模塊文件, 不過也有一個(gè)更新簡單的方法, 不使用 peclphpize 安裝 mongodb 擴(kuò)展, 那就是使用 brew install phpVS-mongodb 來安裝, phpVS 則是具體版本號(hào), 安裝擴(kuò)展后通過 brew 重啟 php 即可生效!這種方式也方便管理擴(kuò)展,通過 brew 安裝的擴(kuò)展會(huì)在 /usr/local/etc/php/7.1/conf.d/ 目錄下生成對(duì)應(yīng)的擴(kuò)展配置文件如 ext-mongodb.ini, 重啟 php 則會(huì)加載 conf.d 目錄的配置文件。謝了,老鐵!

神曲 回答

除了行數(shù)相同,兩個(gè)表的行間沒有任何關(guān)聯(lián)關(guān)系,用D替換C的說法就不明確了??梢钥紤]強(qiáng)制給一個(gè)排序順序row_number() over (order by)作為id進(jìn)行替換。但是這樣做的結(jié)果有什么意義只有題主自己把握了。

連新建表的權(quán)限也沒有,可以先insert

insert into T1 select A, B, D + '<<INSERTED>>' C from
    (select row_number() over (order by A,B,C) id, * from T1) S1 
    inner join
    (select row_number() over (order by D) id, * from T2) S2
    on S1.id = S2.id

delete

delete T1 where C not like '%<<INSERTED>>'

當(dāng)然最后還需要把Cupdate一下,去掉后綴<<INSERTED>>。

落殤 回答

是的,官方文檔的描述是這樣的:

In MySQL, physically, a schema is synonymous with a database. You can
substitute the keyword SCHEMA instead of DATABASE in MySQL SQL syntax,
for example using CREATE SCHEMA instead of CREATE DATABASE.
柚稚 回答

MariaDB 是 MySQL 的分支,完全兼容 MySQL 命令,PHP7 用 MariaDB 沒有問題。

MariaDB數(shù)據(jù)庫管理系統(tǒng)是MySQL的一個(gè)分支,主要由開源社區(qū)在維護(hù),采用GPL授權(quán)許可。開發(fā)這個(gè)分支的原因之一是:甲骨文公司收購了MySQL后,有將MySQL閉源的潛在風(fēng)險(xiǎn),因此社區(qū)采用分支的方式來避開這個(gè)風(fēng)險(xiǎn)。

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。在存儲(chǔ)引擎方面,10.0.9版起使用XtraDB(名稱代號(hào)為Aria)來代替MySQL的InnoDB。

MariaDB由MySQL的創(chuàng)始人麥克爾·維德紐斯主導(dǎo)開發(fā),他早前曾以10億美元的價(jià)格,將自己創(chuàng)建的公司MySQL
AB賣給了SUN,此后,隨著SUN被甲骨文收購,MySQL的所有權(quán)也落入Oracle的手中。MariaDB名稱來自麥克爾·維德紐斯的女兒瑪麗亞(英語:Maria)的名字。

你要看一下/etc/init.d/下面的mysql相關(guān)的腳本名字是什么

ls -al /etc/init.d/mysql*

很多系統(tǒng)下服務(wù)腳本的名字是mysql, 而不是mysqld
所以啟動(dòng)服務(wù)要用

service mysql start

看上你的的mysql并不是系統(tǒng)自帶的, 如果是編譯安裝的, 先要安裝服務(wù)腳本才行.

另外新的centos和ubuntu下建議用systemctl來啟動(dòng)服務(wù):

systemctl start mysql