如何编写一个SQL查询来检索同一列上具有2个条件的所有行

时间:2019-03-01 09:01:38

标签: mysql sql

如何编写一个SQL查询来检索同一列上具有2个条件的所有行?

我有一张桌子,桌子上有一列叫做type的列。 我要做的是列出所有类型的值“名称”。 但是type列也有一个称为text的值。 因此,我想列出所有具有文本值类型的名称。

我该如何实现?

ID     Type     Value
1      Name    Name1
1      Text    "Hello"
2      Text    "Hello test"
2      Name    Name2
3      Name    Name3
4      Name    Name4
5      Name    Name5

我只想返回具有文本类型的名称值。 该表有两种类型,我想做的就是只返回所有具有文本类型的“名称”类型

预期结果:

ID     Type     Value
1      Name    Name1
2      Name    Name2

因为这两个是唯一带有值的“文本”类型的一个。

3 个答案:

答案 0 :(得分:2)

这是您想要的吗?

admin.py

答案 1 :(得分:2)

进行自我加入:

select t1.*
from tablename t1
join tablename t2 on t1.id = t2.id
where t1.Type = 'Name'
  and t2.Type = 'Text'

答案 2 :(得分:0)

我会使用public void addCircleMarker(LatLng latLng) { Drawable circleDrawable = ContextCompat.getDrawable(getApplicationContext(), R.drawable.ic_blue_circle); BitmapDescriptor markerIcon = getMarkerIconFromDrawable(circleDrawable, 30, 30); mGoogleMap.addMarker(new MarkerOptions() .position(latLng) .anchor(0.5f, 0.5f) .icon(markerIcon) ); } private BitmapDescriptor getMarkerIconFromDrawable(Drawable drawable, int width, int height) { Canvas canvas = new Canvas(); Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); canvas.setBitmap(bitmap); drawable.setBounds(0, 0, width, height); drawable.draw(canvas); return BitmapDescriptorFactory.fromBitmap(bitmap); }

exists

如果我想使用“文本”行中的任何值,我将使用select t.* from t where t.type = 'Name' and exists (select 1 from t t2 where t2.id = t.id and t2.type = 'Text' ); 。但是,如果我只想要“名称”行,那么我认为join是逻辑的更直接翻译。