insert with multiple row return through select I want to insert multiple rows return from select statement with different uid, 
lets select statement return (1,2,4,5);    

INSERT INTO `notifications`( `Text`, `uid`, `read_status`) 
VALUES ("abc",(select uid from users where status=1),0)


How can I insert this from one insert query?

Output

 Text,    uid,    read_status
 abc,     1,    0
 abc,     2,    0
 abc,     4,    0
 abc,     5,    0
Almost. You need to remove the values clause and just put the select straight after the table and column names of the insert clause:

INSERT INTO notifications(text, uid, read_status)
SELECT "abc", uid, 0 FROM users WHERE status = 1;


Then the output of the select will go to the insert.