簡體   English   中英

從數據庫表中全選–但在其中一列上使用函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM