鍍金池/ 問答/ 數(shù)據(jù)庫問答
夢囈 回答

已經(jīng)解決了,加一個條件即可
update A set a = (select b from B where B.id = A.id) where A.id in (select B.id from B)

深記你 回答

1。小程序后臺可以用mongo。
2。小程序和html一樣,前后端分離,后臺不管你是aps還是php還是java還是node。小程序只會關(guān)心你后臺返回的數(shù)據(jù)。
3。小程序只支持https域名。
4。小程序要本地調(diào)試。只需要在本地hosts解析[你修改后的Request URL]

乖乖噠 回答

$smarty.foreach.name.iteration

溫衫 回答

針對于這個需求,我有兩步方案

1.將用戶點(diǎn)擊投票或者取消投票的總數(shù)放到緩存中,redis,memcache都可以,建議redis;

2.將某個用戶是否投票,放入緩存,同上;

3.用戶展示的以及判斷的數(shù)據(jù)邏輯,直接走緩存,然后再通過定時腳本同步數(shù)據(jù)到mysql服務(wù)器上;

4.如果為了保險(xiǎn)起見可以在更新或者寫入的時候加鎖,保證數(shù)據(jù)的一致性,前提條件要根據(jù)邏輯來,不會出現(xiàn)死鎖。

菊外人 回答

上邊那個鏈接打不開我重新發(fā)一下mongodb doc

吃藕丑 回答

如果有err代表本來就沒寫成功,直接做下面的事情就好了。
最佳實(shí)踐是在這里至少應(yīng)該記錄一條日志,不能靜默地吞掉錯誤什么都不說,會對你將來調(diào)試問題造成很大困擾。

情皺 回答

這取決于你所選擇的引擎和文件系統(tǒng)。

MyISAMMySQL 5.0 之后單表上限取決于文件系統(tǒng)。
Innodb 在 共享表空間存儲方式 的情況下單表上限(不是單文件)為 64TB 左右,其中包含索引等相關(guān)數(shù)據(jù);
在 獨(dú)享表空間存儲方式 的情況下單表上限由文件系統(tǒng)決定。

以上相關(guān)信息由百度結(jié)果 mysql單表大小的限制 - CSDN (該文發(fā)布于 2015年01月18日) 得來,關(guān)鍵字為 MySQL 單表上限,最新的數(shù)據(jù)應(yīng)以官網(wǎng)為準(zhǔn)。

假灑脫 回答

多關(guān)聯(lián)幾次用戶表就可以了吧,如:

select t.*, u1.name, u2.name
from t inner join t_user u1 on u1.uid = t.uid1
       inner jion t_user u2 on u2.uid = t.uid2
凹凸曼 回答

1.根據(jù)業(yè)務(wù)特點(diǎn)選擇合適的引擎
2.小表join大表
3、使用explain分析sql語句,尋找優(yōu)化點(diǎn)
4、創(chuàng)建合適的索引
5、數(shù)據(jù)量大的話,考慮表的橫向拆分、縱向拆分
6、讀寫分離
7、主從復(fù)制
8、涉及大量join的語句,可以考慮將其拆分,通過代碼進(jìn)行處理

咕嚕嚕 回答
是不是Student模型的的字段不能用變量表示?

可以。

不過,先說一點(diǎn),在 Python 中: obj['a']obj.a 是不一樣的,前者是 __getitem__ ,后者是 __getattribute__ 。

你要用變量的話,可以 getattr(Student, key) == value ,不過,查詢一般不會這樣用。

報(bào)錯: 不可以遍歷QueryBase

看不出為什么,你查詢那句是沒問題的。

解夏 回答

寫個通用的更新sql,可以用mybatis的條件語句,傳值也是傳多個值,然后不需要更新的值傳null,這樣可以避免更新的時候new一個對象,也可以避免沒有改動的數(shù)據(jù)也修改,不過可能字段多了,但是某時只需改一個字段的時候多個參數(shù)值為null,不大美觀。

夢一場 回答

異常捕獲不對應(yīng)該這樣寫,需要結(jié)合第一句你需要查詢的語句一起寫:

try:
    hostLi = session.query(database.DB_test.host).all()
except:
    session.rollback()
網(wǎng)妓 回答

后臺管理其實(shí)跟普通的沒有多大的區(qū)別,主要是權(quán)限管理和接口,如果你會node的話,其實(shí)后端也就是增刪改查而已,難度不大;
這些網(wǎng)上一搜一大把,在問問題之前,你應(yīng)該學(xué)會如何提問;如何提問

如果有什么具體問題的話,可以私信相互交流下

vue+node開發(fā)的一個博客,歡迎大家一起來交流!
Vue.js + Node.js打造個人博客(新手向)

寫榮 回答

你的代碼問題太多了:

  1. a.sort 是函數(shù) sort 對象, 由於你沒有調(diào)用所以也不會排序, 應(yīng)當(dāng)改為 a.sort()a = sorted(a), 不過在不影響原始資料的前提下, 我們通常選擇後者的作法
  2. mid 的更新應(yīng)該在 while 內(nèi), 否則不管 low 或是 high 怎麼變動, 你都是在測試一樣的資料
  3. low < high 這個條件應(yīng)當(dāng)改為 low <= high 否則有一些 corner case 會有問題
  4. 當(dāng) t > a[mid] 的時候, low 應(yīng)該更新為 mid + 1 而非 high + 1
  5. 當(dāng) t == a[mid] 也就是找到目標(biāo)的時候, 也應(yīng)該返回該目標(biāo)的索引值而非打印結(jié)果而已
  6. 當(dāng)搜尋結(jié)束, 若未發(fā)現(xiàn)目標(biāo), 應(yīng)該回傳一個錯誤值, 像是 -1 或是 None, 但我更傾向自定義一個錯誤並引發(fā)之

綜上所述加上其他一些小優(yōu)化包含變量名稱等, 我有一個修正後的版本給你參考:

class NotFoundError(Exception):
    """Can not found target number within the given numbers"""

def binary(target, numbers):
    numbers = sorted(numbers)
    low, high = 0, len(numbers) - 1
    while low <= high:
        mid = (low + high) // 2
        print(low, high, mid)
        if target < numbers[mid]:
            high = mid - 1
        elif target == numbers[mid]:
            return mid
        else:
            low = mid + 1
    raise NotFoundError

target = int(input("請輸入一個數(shù)"))
numbers = list(range(1, 21))
try:
    idx = binary(target, numbers)
    print('target {} is in numbers with index {}'.format(target, idx))
except NotFoundError as err:
    # error handling

我回答過的問題: Python-QA

拮據(jù) 回答
select a.name, b.total from mer_content a 
inner join
(select id, count(url) as total from mer_imgurl group by id) b
on a.id = b.id

就是把表二先按做個group,再和表一用id來join。
如果表二的id和url會有重復(fù)情況的話,那么b中需要改成count(distinct url)

希望能夠幫到你。

夏木 回答
The recommended namespace for passing information through middleware and to your frontend views.

body和原來一樣沒變過,只說說state
為什么會有state,因?yàn)槲覀儠械胶芏嘀虚g件用于存儲某些昨天,比如登陸或者權(quán)限驗(yàn)證,在此之前,我們會報(bào)錯到ctx的一個自定義屬性上比如ctx.locals.isLogin,但是我們總是要寫類似這樣的代碼

app.use(async ctx => {
    ctx.locals = ctx.locals || {};
});

現(xiàn)在官方提供了ctx.state用于報(bào)錯中間件的狀態(tài)數(shù)據(jù)。

心夠野 回答

沒上線,費(fèi)點(diǎn)力氣還是能改的。
把項(xiàng)目工程的編碼、文件存儲的編碼、過濾器編碼全部修改一下吧,如果有jsp的話頁面中encoding的聲明也要改一下。

如果有判斷字段長度的地方,UTF8是按照三個字節(jié),GBK是2個字節(jié),也需要修改。

當(dāng)然,最好的辦法是說服客戶,如果是空數(shù)據(jù)庫,客戶不想費(fèi)事修改,給權(quán)限的話你自己動手來吧;但如果和其它數(shù)據(jù)庫放在一塊就不太可能修改了。

乖乖瀦 回答

這個問題跟MongoDB相關(guān)是體現(xiàn)在想用MongoDB存儲這些文檔的內(nèi)容?還是說只是想用MongoDB管理這些文檔的版本?
這個問題要展開了說挺復(fù)雜的,想想Google Docs或者Office 365(老板是給你開了多少錢要做這么復(fù)雜的應(yīng)用?)。簡單地實(shí)現(xiàn)也可以,就是把每個版本的word文檔都存下來就好了,每個標(biāo)上版本號。

朕略萌 回答

你的這個需求跟數(shù)據(jù)庫有關(guān),比如postgresql和oracle就支持,mysql就沒有,不是所有數(shù)據(jù)庫都支持的特性,一般sqlalchemy是不會有的。