Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
i have a problem with MySQL. My table has a ID, but when i select the data and order by ID ASC, the id is out of order.
As you can see, after WI10 the ID is WI100, the ID should be WI11. Any solutions? Sorry for my bad eng, thank you!
The column cid is sorted alphabetically because it is not a number.
If its pattern is always like WIXXX you can sort the table like:
order by substr(cid, 3) + 0
This extracts the numeric part after the first 2 chars and implicitly converts it to a number.
Related
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
As the title suggests, trying to take the count or possibly distinct count of a column, we call it year, to count the number of a years for an individual or populated ID and place it another column in the same table. Here is an idea of what I have so far and we want to update the table. Thank you.
Join group table to updated table directly:
UPDATE outputtable O JOIN
(SELECT personID, COUNT(DISTINCT year) AS countYear
FROM outputtable GROUP BY personID) temp ON O.personID=temp.personID
SET O.N=temp.countYear
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
Here is the MySQL code
select id, name, code, batch_id from subjects where batch_id=18;
In this query i want name to be subject name during the execution. So this is the whole problem.
Do you want a column alias in the resultset?
select id, name as subject_name, code, batch_id
from subjects
where batch_id = 18
This changes the name of column name to subject_name in the result of the query.
I don't see what your question has to do with the where clause.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
I have a column media_type with sample following values
*media_type*
-------------------
socialmedia, paper
tv
paper, tv
pamplet,board
tv,board,pamplet
I would want to filter my promotions which are being advertised through only one media.
You can use locate():
select *
from mytable
where not locate(',', media_type)
This phrases as: get all rows whose media_type is not null and does not contain a comma.
A more portable approach uses like:
select *
from mytable
where media_type not like '%,%'
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
How to get the data with different field names in MYSQL?
I have a order table and columns as follows:
order_id, order_name
in results I want the field names as id and name like below:
{id: 1, name: "swamy"}
what's the best way to do this?
Use SQL aliases like below
select order_id AS id, order_name AS name from table_name;
For more ref: SQL Aliases
Simply use mysql alias for the same.
SELECT
order_id AS id
order_name AS name
FROM order;
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 4 years ago.
Improve this question
So I have a table for biddings, you can win the bidding by posting the lowest unique bid. So if 2 people place a bet of $1, none of them win, if 1 person places a bet of $2, this guy wins. But how can I check this in MySQL?
Assume your table has the bid value stored in the field name bet, then below is a worked solution:
SELECT * FROM YourTableName
WHERE bet = (SELECT MIN(bet) FROM YourTableName)
GROUP BY bet
HAVING COUNT(*) = 1;