ホームページ  >  記事  >  バックエンド開発  >  次の SQL ステートメントをこの形式に変更するにはどうすればよいですか?

次の SQL ステートメントをこの形式に変更するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 14:08:211046ブラウズ

PHP のソースコードをダウンロードしました。オブジェクト指向形式のようです。わかりましたが、この形式ではあまり書けません
次の SQL ステートメントをこの形式に変更するにはどうすればよいですか?

ランダム rand 関数のステートメントは一般的に次のように記述されます
SELECT *
FROM `table`
WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `product` )
ORDER BY 'product_id desc' ;

ダウンロードしたソースコードは関数形式で記述する必要があります。変更方法がわかりません
$product_tuijian = $db->pe_selectall('product', array('product_istuijian'=>1, 'product_state'=>1, 'order by'=>' product_id desc' ), '*', array(5));

上記のステートメントを次のステートメントに変更してください。

ディスカッションへの返信 (解決策)

オブジェクト/リレーション マッピング (ORM) の検索

どの PHP ソース コードをダウンロードするかは、ソース コードの解析方法によって異なります

Phpshe???

By pe_selectall定義から、条件 id >= (SELECT FLOOR( MAX(id) * RAND()) は、演算子が >= であるため、それらによって処理できないことがわかります

sql_selectall メソッドを直接使用して、クエリコマンドを実行してください

	/* ====================== 快速mysql处理函数 ====================== */	public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())	{		//处理条件语句		$sqlwhere = $this->_dowhere($where);		return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);	}


Phpshe ???
pe_selectall と _dowhere の定義からわかります
条件 ID >= (SELECT FLOOR( MAX(id) * RAND()) はそれらによって処理できません

演算子は >= なので

sql_selectall を直接使用してクエリ コマンドを実行します

	/* ====================== 快速mysql处理函数 ====================== */	public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())	{		//处理条件语句		$sqlwhere = $this->_dowhere($where);		return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);	}





長い間このソース コードを探していたことがわかります。それはそれほど複雑ではありません。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:雇用機能の問題次の記事:雇用機能の問題