今天遇到一個問題,就是在vendor表中查詢出vendor_id = vendor_f_id的數據,其實使用原生的sql語句是非常簡單的:
select * from vendor where vendor_id = vendor_f_id
但是,在thinkphp中為了代碼的簡潔以及通用性,不考慮使用原生的方式進行sql的查詢,而是采用查詢map的方式進行查詢
$condition[ 'vendor_f_id' ] = 'vendor_id';
但是,thinkphp在處理上述條件的時候,將其轉化為了以下代碼:
select * from vendor where vendor_f_id = 'vendor_id'
也就是說,vendor_id被當成了一個字符串進行處理了
解決上述問題的辦法是:
$condition[ 'vendor_f_id' ] = [ 'exp' , ' = vendor_id ' ]