[英]Select all from database table – but use a function on one of the columns
這是否可能,我對這個問題的標題是否有意義?
我正在努力並試圖找出從數據庫table
獲取所有資源的方法,但是我需要運行SQL或PHP函數。
因此,真正的簡短示例是:
SELECT * FROM `table` WHERE `ip` = '$this->ip'
但是,我正在使用INET_ATON()
存儲IP
並使用INET_NTOA()
將其取回。 我也可以使用PHP的函數ip2long()
和long2ip()
,但是我仍然不知道如何使用相同的查詢來完成這樣的事情?
SELECT `id`, INET_NTOA(`ip`) as `ip`, `points`
FROM `table` WHERE `ip` = INET_ATON('$this->ip')
這些都是手動定義的table columns
,以達到我需要確切執行的目的。 但是...對於這個簡單的項目,似乎可以這樣做,但是如果我有更多的列,而其中只有一部分或其中一部分需要進行轉換,該怎么辦?
所以我該怎么做... (我知道這是無效的)
SELECT * FROM `table` WHERE `ip` = '$this->ip` BUT INET_NTOA(`ip`) as `ip`
除了這個問題,我還想知道INET_ATON() & INET_NTOA()
僅是MySQL function
還是SQL
函數。 因為我打算重寫我的項目以使用PDO
而不是MySQLi
而且我不確定這些功能是否有效,否則我應該依賴PHP的內置相同功能。
INET_ATON()和INET_NTOA()//所有這些都已被棄用! 使用inet_pton()或inet_ntop()代替! 原因是它們不適用於IPv6地址,並且在使用IPv6(而非IPv4)的Internet上使用時更多。
它們是具有相同名稱的PHP和SQL函數,都將IP地址轉換為字符串並再次返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.