本文目錄一覽:
- 1、mysql 查詢: SELECT * FROM pm_house_of_floor WHERE has_children 1 我的sql
- 2、請教如何新增一個賬戶管理已有mysql數據庫
- 3、mysql某個數據表無法寫入數據。。。
- 4、數據庫問題MySQL Query : select a.url,a.thumb,a.title,b.pricestart from house_content a,house_c_hous
- 5、mysql問題現在有一個人員表people、房間表house、房間和人員關係表pandh表、現在要按房間ID查詢人員信息
mysql 查詢: SELECT * FROM pm_house_of_floor WHERE has_children 1 我的sql
由於數據庫中處理NULL值的方式比較特別,所以語句查詢結果為空。
NULL值與其他數值進行邏輯運算的結果為 unknow,既然 where條件的結果不確定,所以無法查詢出結果。
select * from pm_house_of_floor where has_children is null;
這樣查詢就會有結果了。
請教如何新增一個賬戶管理已有mysql數據庫
有2個不同的方法增加用戶:通過使用GRANT語句或通過直接操作MySQL授權表。比較好的方法是使用GRANT語句,因為他們是更簡明並且好像錯誤少些。
下面的例子顯示出如何使用MySQL客戶安裝新用戶。這些例子假定權限已缺省被安裝。這意味着為了改變,你必須在MySQL正在運行同一台機器上,你必須作為MySQL root用戶連接,並且root用戶必須對MySQL數據庫有insert權限和reload管理權限。另外,如果你改變了root用戶口令,你必須如下的MySQL命令指定它。
你可以通過發出GRANT語句增加新用戶:
shell mysql –user=root mysql
mysql GRANT ALL PRIVILEGES ON *.* TO monty@localhost
IDENTIFIED BY ‘something’ WITH GRANT OPTION;
mysql GRANT ALL PRIVILEGES ON *.* TO monty@”%”
IDENTIFIED BY ‘something’ WITH GRANT OPTION;
mysql GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql GRANT USAGE ON *.* TO dummy@localhost;
這些GRANT語句安裝3個新用戶:
monty:可以從任何地方連接服務器的一個完全的超級用戶,但是必須使用一個口令(‘something’做這個。注意,我們必須對monty@localhost和monty@”%”發出GRANT語句。如果我們增加localhost條目,對localhost的匿名用戶條目在我們從本地主機連接接時由mysql_install_db創建的條目將優先考慮,因為它有更特定的Host字段值,所以以user表排列順序看更早到來。
admin:可以從localhost沒有一個口令進行連接並且被授予reload和process管理權限的用戶。這允許用戶執行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*命令,還有mysqladmin processlist。沒有授予數據庫有關的權限。他們能在以後通過發出另一個GRANT語句授權。
dummy:可以不用一個口令連接的一個用戶,但是只能從本地主機。全局權限被設置為’N’–USAGE權限類型允許你無需權限就可設置一個用戶。它假定你將在以後授予數據庫相關的權限。
你也可以直接通過發出INSERT語句增加同樣的用戶存取信息,然後告訴服務器再次裝入授權表:
shell mysql –user=root mysql
mysql INSERT INTO user VALUES(‘localhost’,’monty’,PASSWORD(‘something’),
‘Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’)
mysql INSERT INTO user VALUES(‘%’,’monty’,PASSWORD(‘something’),
‘Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’)
mysql INSERT INTO user SET Host=’localhost’,User=’admin’,
Reload_priv=’Y’, Process_priv=’Y’;
mysql INSERT INTO user (Host,User,Password)
VALUES(‘localhost’,’dummy’,”);
mysql FLUSH PRIVILEGES;
取決於你的MySQL版本,對上述,你可能必須使用一個不同數目’Y’值(在3.22.11以前的版本有更少的權限列)。對admin用戶,只用在3.22.11開始的版本具有的更加可讀的INSERT擴充的語法。
注意,為了設置一個超級用戶,你只需創造一個user表條目,其權限字段設為’Y’。不需要db或host表的條目。
在user表中的權限列不是由最後一個INSERT語句明確設置的(對dummy用戶),因此那些列被賦予缺省值’N’。這是GRANT USAGE做的同樣的事情。
下列例子增加一個用戶custom,他能從主機 localhost、server.domain和whitehouse.gov連接。他只想要從localhost存取bankaccount數據庫,從whitehouse.gov存取expenses數據庫和從所有3台主機存取customer數據庫。他想要從所有3台主機上使用口令stupid。
為了使用GRANT語句設置個用戶的權限,運行這些命令:
shell mysql –user=root
mysql mysql GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON bankaccount.*
TO custom@localhost
IDENTIFIED BY ‘stupid’;
mysql GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON expenses.*
TO custom@whitehouse.gov
IDENTIFIED BY ‘stupid’;
mysql GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON customer.*
TO custom@’%’
IDENTIFIED BY ‘stupid’;
通過直接修改授權表設置用戶權限,運行這些命令(注意,在結束時FLUSH PRIVILEGES):
shell mysql –user=root
mysql mysql INSERT INTO user (Host,User,Password)
VALUES(‘localhost’,’custom’,PASSWORD(‘stupid’));
mysql INSERT INTO user (Host,User,Password)
VALUES(‘server.domain’,’custom’,PASSWORD(‘stupid’));
mysql INSERT INTO user (Host,User,Password)
VALUES(‘whitehouse.gov’,’custom’,PASSWORD(‘stupid’));
mysql INSERT INTO db
(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
Create_priv,Drop_priv)
VALUES
(‘localhost’,’bankaccount’,’custom’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);
mysql INSERT INTO db
(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
Create_priv,Drop_priv)
VALUES
(‘whitehouse.gov’,’expenses’,’custom’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);
mysql INSERT INTO db
(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
Create_priv,Drop_priv)
VALUES(‘%’,’customer’,’custom’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);
mysql FLUSH PRIVILEGES;
頭3個INSERT語句增加user表條目,允許用戶 custom用給定口令從不同的主機進行連接,但是沒有授予任何許可(所有權限被設置為缺省值’N’)。後3個INSERT語句增加db表條目,授予 custom以bankaccount、expenses和customer數據庫權限,但是只能在從正確的主機存取時。通常,在授權表直接被修改時,服務器必須被告知再次裝入他們(用FLUSH PRIVILEGES)以便使權限修改生效。 如果你想要給特定的用戶從一個給定的域上的任何機器上存取權限,你可以發出一個如下的GRANT語句:
mysql GRANT …
ON *.*
TO myusername@”%.mydomainname.com”
IDENTIFIED BY ‘mypassword’;
為了通過直接修改授權表做同樣的事情,這樣做:
mysql INSERT INTO user VALUES (‘%.mydomainname.com’, ‘myusername’,
PASSWORD(‘mypassword’),…);
mysql FLUSH PRIVILEGES;
你也可以使用xmysqladmin、mysql_webadmin甚至xmysql在授權表中插入、改變和更新值。你可以在MySQL的Contrib目錄找到這些實用程序。
mysql某個數據表無法寫入數據。。。
你這沒有輸出錯誤,看不出來一時半會,你可以試試把mysql裡面的sql_mode字段設置為空set
sql_mode=”;這樣即使插入字段存在問題,mysql也能自動更正,如果仍然存在問題,可能是你的數據庫和與程序連接的JDBC或者ODBC那塊的問題,可以查詢數據庫跟插入數據庫沒有任何聯繫,我也遇到可讀不可寫的情況,連接配置問題都是。
數據庫問題MySQL Query : select a.url,a.thumb,a.title,b.pricestart from house_content a,house_c_hous
明顯 and 語法錯誤啊!
另外,status是保留字,建議別用在字段名上
mysql問題現在有一個人員表people、房間表house、房間和人員關係表pandh表、現在要按房間ID查詢人員信息
select a.* from people a left join pandh b on (a.id=b.pid) where hid=房間id order by ifnull(b.pid,1,0)
假設people表有個id能跟pandh表的pid對應得上
原創文章,作者:AMYA,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/148954.html